船说 CMS 如何开启 https
照着做完,你的船说 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 控制台做最终验收,重点看有没有混合内容警告。
原文链接:https://www.gj0.com/thread-259.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。