赞片CMSSSL错误

juming
juming 初级会员超兽战士
发布于 2026-10-08 10:15 ·2 浏览 ·0 回复

照着这篇文章走完,你能自己定位并修好赞片CMS上那几种最常见的 SSL 报错——后台打不开、前台白屏、图片和播放器转圈、提示「您的连接不是私密连接」——而不是只会重启服务器。

第一步:先分清是哪一类 SSL 错误

这一步的目的是搞清楚「是证书坏了」还是「页面混了 HTTP 资源」,因为两者的修法完全不同,搞错方向会白折腾半天。

打开出问题的页面,按 F12 调出开发者工具,切到 Console(控制台) 面板,看红色的报错行:

  • net::ERR_CERT_DATE_INVALID、ERR_CERT_COMMON_NAME_INVALID、ERR_CERT_AUTHORITY_INVALID → 证书本身有问题,走第二步。
  • Mixed Content: The page at 'https://...' was loaded over HTTPS, but requested an insecure image/script 'http://...' → 证书没问题,是页面里混进了 HTTP 资源,走第四步。
  • 页面能开但跳来跳去在 HTTP 和 HTTPS 之间来回切 → 大概率是后台配置的站点地址还是 http,走第三步。

注意:手机上不报错、电脑上报错,或者反过来,通常是「证书链不完整」,别急着换证书,先看第二步。

第二步:确认证书装全了(宝塔面板为例)

这一步要拿到一个结果:openssl 命令能返回正确的域名和没过期的有效期。

宝塔面板 8.x 的操作路径:网站 → 你的站点 → SSL → 当前证书。粘贴证书时必须是完整证书链,也就是「域名证书 + 中间证书」,不能只贴 domain.crt 那一段。

验证命令(在服务器 SSH 里执行):

openssl s_client -connect 你的域名:443 -servername 你的域名 </dev/null 2>/dev/null | openssl x509 -noout -dates -subject

看两处:notAfter 是否在今天之后,subject 里的 CN 是否等于你的域名。如果返回 verify error:num=21:unable to verify the first certificate,就是链不全。

Nginx 里确认这两行(宝塔会在 /www/server/panel/vhost/nginx/你的域名.conf 生成):

ssl_certificate     /www/server/panel/vhost/cert/你的域名/fullchain.pem;
ssl_certificate_key /www/server/panel/vhost/cert/你的域名/privkey.pem;

改完执行 nginx -t && nginx -s reload,或直接在宝塔点「重载配置」。

注意:只填域名证书不填中间证书时,Chrome 可能正常,但安卓微信内置浏览器、iOS 旧版本、以及赞片CMS的采集和 APP 接口会直接报 SSL 握手失败。

第三步:强制 HTTPS,并改掉后台里的站点地址

这步做完,前台所有链接都会用 https 生成,不会再出现「跳一下又变回 HTTP」。

先在宝塔:网站 → 设置 → SSL → 打开「强制HTTPS」。

再登录赞片CMS后台,地址用 https://你的域名/admin.php,进 系统 → 基本设置,把「网站地址」改成 https://你的域名(结尾不带斜杠),保存。然后 系统 → 缓存管理 → 清除缓存。

注意:只做强制跳转、不改后台站点地址,模板仍然按 http 拼链接,表现为「SSL 时灵时不灵」。

第四步:清数据库里残留的 http:// 链接

赞片CMS的影片封面、播放地址、采集来源域名大多直接存在数据库里,这是混合内容最主要的来源。

宝塔 → 数据库 → 管理(进 phpMyAdmin),先点「导出」做一次全库备份,再执行 SQL(默认表前缀 zanpian_,按你实际的前缀改):

UPDATE zanpian_vod SET vod_pic = REPLACE(vod_pic, 'http://你的域名', 'https://你的域名');

播放地址字段、文章表、采集来源表同理。不确定有几张表受影响,可以先导出成 .sql,在服务器上数一下:

grep -o 'http://你的域名' 备份.sql | wc -l

第五步:处理模板和 JS 里的硬编码

后台改不到模板源码,得用 SSH 替换。先备份,再查、再改:

cd /www/wwwroot/你的站点目录
cp -r template template_bak
grep -rn "http://你的域名" template/ static/ | head -50
grep -rl "http://你的域名" template/ static/ | xargs sed -i 's#http://你的域名#https://你的域名#g'

注意:赞片CMS部分模板文件是加密的,替换前必须留 template_bak,否则改坏后前台直接白屏。

第六步:CDN 和第三方资源

如果套了 Cloudflare 或阿里云 CDN,CDN 侧也要上传证书,并且回源协议设为 HTTPS。Cloudflare 的 SSL/TLS → 概览 里选「完全(严格)」,不要选「灵活」,否则 CF 到源站仍是 HTTP,会出现 502 或无限重定向。

第三方播放器和采集接口是 http 的,浏览器照样拦。可以在 Nginx 站点配置里加一行,让浏览器自动升级:

add_header Content-Security-Policy "upgrade-insecure-requests";

小结

  • 先看 F12 Console,区分「证书错误」和「混合内容」,两者的修法完全不同。
  • 证书必须传完整链,Nginx 的 ssl_certificate 指向 fullchain.pem。
  • 强制 HTTPS + 后台「网站地址」改 https + 清缓存,这三步要一起做。
  • 数据库字段、模板、JS 里的 http:// 是混合内容的主因,动之前一律先备份。
  • 用了 CDN,回源协议也要是 HTTPS,模式选「完全(严格)」。
版权声明:本文来自 GJ站长论坛《赞片CMSSSL错误》
原文链接:https://www.gj0.com/thread-893.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~