船说 CMS 如何开启 https

chinaz
chinaz 正式会员超兽战士
发布于 2026-10-07 11:37 ·0 浏览 ·0 回复

照着做完,你的船说 CMS 站点就能从 http:// 平滑切到 https://,浏览器地址栏出现小锁,且前台不会出现「混合内容」警告。

第一步:先拿到 SSL 证书

这一步的目标是拿到两个文件:证书(.pem 或 .crt)和私钥(.key)。没有证书,后面所有配置都无从谈起。

两条路任选:一是去阿里云/腾讯云控制台申请免费 DV 证书,签发后在「证书下载」里选 Nginx 格式下载,得到 xxx.pem 和 xxx.key;二是如果用宝塔面板,直接在 网站 → 你的站点 → 设置 → SSL → Let's Encrypt,勾选要签发的域名,点「申请」,宝塔会自动续期,最省事。

注意:证书要和实际访问的域名完全一致,带 www 和不带 www 算两个域名,申请时两个都勾上。

第二步:配置 Nginx 并强制跳转

这一步做完,80 端口的访问会自动跳到 443,https 生效。

如果是自己维护 Nginx,编辑站点配置文件(通常在 /www/server/panel/vhost/nginx/你的域名.conf 或 /etc/nginx/conf.d/),把原有 server 块改成下面两块:

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

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

    ssl_certificate     /etc/nginx/ssl/example.com.pem;
    ssl_certificate_key /etc/nginx/ssl/example.com.key;
    ssl_protocols       TLSv1.2 TLSv1.3;

    root  /www/wwwroot/chuanshuo;
    index index.php index.html;

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

保存后执行 nginx -t 检查语法,再 nginx -s reload。

如果用的是宝塔,更简单:网站 → 站点 → 设置 → SSL → 当前证书 粘贴内容并保存,然后把同一页面上的「强制 HTTPS」开关打开即可,宝塔会自动写好跳转。

注意:root 要指向你船说 CMS 实际安装目录,fastcgi_pass 的 PHP 版本要和站点运行的版本一致,直接照抄容易 502。

第三步:改后台里的站点地址

Nginx 只是让 https 能访问,CMS 自身还得知道新地址,否则生成的链接仍然是 http。

登录船说 CMS 后台(默认入口一般是 https://你的域名/admin.php,具体以你安装时设置的为准),进入 系统设置 → 基础设置(网站设置),找到「网站域名/站点 URL」这类字段,把 http:// 改成 https://,保存。

同时检查这几个地方:后台入口域名、附件/CDN 域名、手机端域名(如果有),凡是带 http 的一并改掉。改完进 系统 → 缓存管理,点一次「清除缓存」。

注意:改完后如果后台打不开或跳回 http,说明配置缓存没清干净,可以去 runtime/ 目录手动删掉缓存文件夹(runtime/cache、runtime/temp),再刷新。

第四步:批量替换数据库里的历史 http 链接

这一步解决的是老文章、老图片仍用 http 引用,导致浏览器锁标变灰的问题。

先备份数据库,然后在 phpMyAdmin 或宝塔的 数据库 → 管理 → SQL 里执行(把 cs_ 换成你安装时的表前缀,www.example.com 换成你的域名):

UPDATE cs_config SET value = REPLACE(value, 'http://www.example.com', 'https://www.example.com');
UPDATE cs_article SET content = REPLACE(content, 'http://www.example.com', 'https://www.example.com');

字段名以你实际的表结构为准,执行前先 SELECT 看一眼再 update。

第五步:验证是否真的干净

打开首页,按 F12 → Console,刷新页面。如果还有黄色或红色提示,说明仍有资源走 http,按提示的 URL 回数据库继续替换。地址栏出现锁标、Console 无警告,就算完成。

注意:如果站点接了第三方统计、地图、外链图片,它们本身不支持 https,浏览器依然会报混合内容,这类只能换服务商或删掉。

小结

  • 证书先到位,再动 Nginx,最后改 CMS,顺序不能反。
  • Nginx 里 80 端口用 301 跳到 443,宝塔用户直接开「强制 HTTPS」。
  • 后台把「网站域名」和所有子域名配置全部改成 https,并清缓存。
  • 数据库里 config、article 表的 http 链接要批量替换,否则锁标不绿。
  • 用 F12 控制台做最终验收,重点看有没有混合内容警告。
版权声明:本文来自 GJ站长论坛《船说 CMS 如何开启 https》
原文链接:https://www.gj0.com/thread-259.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~