DoraCMS部署SSL证书,开启全站HTTPS

给 DoraCMS 开启全站 HTTPS,核心就三件事:拿到有效的 SSL 证书、在 Web 服务器里正确加载证书、把 HTTP 请求强制跳到 HTTPS。
下面按宝塔面板 + Nginx 的常见环境来讲,这套流程也适用于大多数 Linux 服务器。

开始前的环境确认

动手之前先确认下面几点,能避免大部分中途卡住的情况:

  • 域名已经解析到服务器 IP,并且能正常通过 HTTP 访问 DoraCMS。
  • 服务器上装好了宝塔面板,站点是通过宝塔创建的 Nginx 站点。
  • 如果是手动装的环境,需要能找到 Nginx 配置文件路径,常见位置是 /www/server/panel/vhost/nginx/你的域名.conf。
  • 服务器 443 端口没有被安全组或防火墙拦住。

获取 SSL 证书

在宝塔面板申请免费证书

登录宝塔面板,进入 网站,找到 DoraCMS 对应的站点,点击 设置,切换到 SSL 标签。
选择 Let's Encrypt,勾选需要签发的域名,点击 申请。

证书签发成功后,面板会自动把证书文件放到站点目录下,并在 Nginx 配置里写入 443 监听和证书路径。
申请失败时优先检查域名解析是否生效、80 端口是否可访问,Let's Encrypt 的验证依赖这两个条件。

使用已有商业证书

如果你从其他平台购买或申请了证书,会拿到两个文件:证书链文件(.pem 或 .crt)和私钥文件(.key)。
在宝塔 SSL 页面选择 其他证书,把内容分别粘贴到对应输入框,保存即可。

修改 Nginx 配置并开启 HTTPS

宝塔申请证书后通常会自动改好配置,但手动部署时需要自己确认。
一个可用的 HTTPS 配置片段大致如下:

server {
    listen 443 ssl http2;
    server_name yourdomain.com www.yourdomain.com;

    ssl_certificate     /www/server/panel/vhost/cert/yourdomain.com/fullchain.pem;
    ssl_certificate_key /www/server/panel/vhost/cert/yourdomain.com/privkey.pem;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    root /www/wwwroot/yourdomain.com;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.html;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/tmp/php-cgi-74.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
}

把 yourdomain.com、证书路径、站点根目录和 PHP socket 版本替换成你自己的。
DoraCMS 是基于 Node.js 或 PHP 的建站系统,具体 location 转发规则以你当前站点实际配置为准,不要盲目覆盖原有规则。

改完后在宝塔面板或终端执行 nginx -t 检查语法,出现 syntax is ok 和 test is successful 才算通过。
然后 nginx -s reload 或面板里点击重载。

把 HTTP 请求强制跳转到 HTTPS

只配好 443 还不够,用户直接访问 http:// 时仍会走明文。
需要保留 80 端口的 server 块,并做 301 跳转:

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    return 301 https://$host$request_uri;
}

保存后再次 nginx -t 并重载。
这样无论用户从哪个入口进来,最终都会落到 HTTPS 上。

容易踩的坑和排查方向

  • 证书路径写错:nginx -t 会直接报找不到文件,按报错提示核对路径。
  • 只监听 443 没保留 80:老链接和部分外链会直接打不开,建议保留 80 做跳转。
  • 混合内容警告:浏览器地址栏有小锁但控制台提示混合内容,说明页面里还有 http:// 的图片、JS 或 CSS,需要在 DoraCMS 后台或模板里改成 https:// 或相对路径。
  • 跳转死循环:如果用了 CDN 或反向代理,源站再判断协议可能循环,这时要改用 X-Forwarded-Proto 判断。
  • 证书过期:Let's Encrypt 证书有效期较短,宝塔默认有自动续签任务,建议定期在面板确认续签状态。

验证是否真正生效

配置完成后用下面几种方式确认:

  • 浏览器访问 https://你的域名,地址栏显示锁形图标,点击可查看证书有效期和域名匹配情况。
  • 访问 http://你的域名,观察是否自动跳到 https://。
  • 终端执行 curl -I http://你的域名,返回 301 且 Location 指向 HTTPS 地址,说明跳转正常。
  • 打开浏览器开发者工具的 Console,确认没有混合内容(Mixed Content)报错。

全站 HTTPS 生效后,建议顺手在 DoraCMS 后台把站点地址配置也改成 https:// 开头,避免后台生成的外链或资源地址仍然是 HTTP。

几个常见疑问

证书申请一直失败怎么办? 先确认域名解析是否已生效、80 端口能否从外网访问。
Let's Encrypt 验证需要服务器能被公网访问到,内网或端口被封的环境无法通过。

开启 HTTPS 后网站变慢正常吗? 首次 TLS 握手会有少量开销,开启 http2 和会话缓存后基本无感。
如果明显变慢,检查是否误开了不必要的加密套件或证书链不完整。

能不能只让后台走 HTTPS,前台保持 HTTP? 技术上可以按目录或子域名区分,但维护成本高,也容易出现混合内容问题,一般不建议。

换服务器后 HTTPS 打不开? 证书文件需要一起迁移,路径也要同步修改,迁移后重新执行 nginx -t 并重载确认。

到这一步,DoraCMS 的 SSL 证书部署和全站 HTTPS 基本就完成了。
如果验证时还有异常,优先回到避坑部分逐条对照,多数问题都能定位到证书路径、跳转规则或混合内容上。

分享到:
上一篇
MCMS对接支付接口,企业网站在线付款功能
下一篇
Headless CMS GraphQL接口权限控制
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意