小皮面板部署SSL后依旧提示不安全怎么办

域名注册
域名注册 正式会员超兽战士 👑年卡会员
发布于 2026-10-07 18:53 ·0 浏览 ·0 回复

学完这篇,你能按顺序排查小皮面板部署 SSL 后浏览器仍提示「不安全」的原因,把它修到地址栏出现锁头。

第一步:确认证书链是否完整

这一步要验证服务器返回的证书是否包含中间证书,完整的话 SSLLabs 会给出 A 级评分。打开 https://myssl.com,输入你的域名检测;或者在本机执行:

openssl s_client -connect 你的域名:443 -servername 你的域名

看输出里的 Verify return code。如果是 0 (ok) 就没问题;如果是 1 (unable to get local issuer certificate) 或 21 (unable to verify the first certificate),说明只装了域名证书、没装中间证书。

回到小皮面板 Linux 版(8.x 版本),左侧点「网站」,找到站点后点右侧的「管理」→「SSL」,把「证书(PEM格式)」一栏重新粘贴,内容顺序必须是:你的域名证书 → 中间证书 → (有的 CA 还要根证书),私钥单独填「密钥(KEY)」。

注意:只填域名证书时,Chrome 桌面版可能不报错,但安卓 App、微信小程序、iOS Safari 会直接提示不安全,必须补齐中间证书。

第二步:核对证书域名和有效期

这一步要确认证书覆盖的域名和你实际访问的地址完全一致。执行:

openssl x509 -in 你的证书.crt -noout -text | grep -A1 "Subject Alternative Name"

输出的 DNS 列表里必须包含你访问时输入的完整域名。example.com 和 www.example.com 是两张证书或一张多域名证书,只签了裸域就访问 www,一样会提示不安全。同理,子域名 a.example.com 需要单独证书或泛域名证书。同时看 Not After 是否已过期。

注意:小皮面板里申请 Let's Encrypt 证书时,勾选域名要一次把 example.com 和 www.example.com 都勾上。

第三步:强制 HTTPS 跳转,并保留 80 端口

这一步让用户访问 http 时自动跳到 https,避免地址栏仍是 http 却以为 SSL 失效。在小皮面板站点「管理」→「配置文件」里,找到 80 端口的 server 块,加入:

return 301 https://$host$request_uri;

也可以直接用站点「SSL」页里的「强制 HTTPS」开关,打开后面板会自动写入跳转规则。

注意:不要把 80 端口的监听整段删掉。删了之后 http 访问直接连接失败,跳转也就无从谈起。

第四步:清理混合内容(Mixed Content)

这一步排查页面里是否还有 http:// 的资源,浏览器会因此把锁头变成「不安全」或灰色感叹号。按 F12 打开开发者工具,切到 Console,找 Mixed Content 开头的黄色警告;再切到 Network,按 Protocol 排序,看有没有 http 请求。

WordPress 站点可用 WP-CLI 批量替换:

wp search-replace 'http://example.com' 'https://example.com' --all-tables

注意:只改主题模板不够,数据库 wp_options、文章正文、自定义字段里都可能有 http 地址,必须全表替换。

第五步:反向代理和 CDN 场景

这一步针对小皮面板前面还挂了 Nginx 反代或 CDN 的情况。如果源站收到的是 http 请求,PHP 会认为自己跑在 http 下,生成 http 链接,导致循环跳转或混合内容。在反代配置里加:

proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;

CDN 后台把「回源协议」设为 HTTPS 或「跟随协议」,并确认 CDN 上上传的证书没有过期。

第六步:清缓存和 HSTS 残留

这一步排除本地和浏览器缓存造成的误报。用无痕窗口访问;Chrome 地址栏输入 chrome://net-internals/#hsts,在「Delete domain security policies」里输入域名并删除。小皮面板里如果换过证书,把旧证书条目删除后重新添加,再重启 Nginx:

systemctl restart nginx

第七步:确认 443 端口和防火墙

这一步确认外网能连上 443。服务器上执行:

ss -lntp | grep 443

有输出说明 Nginx 在监听;没有就检查站点配置是否绑定 443。云服务器还要在安全组放行 443 入方向。

小结

  • 证书链不完整是最常见原因,PEM 里必须带中间证书。
  • 域名不匹配要检查 SAN 列表,www 和裸域算两个。
  • 强制跳转要保留 80 端口,否则跳转失效。
  • 混合内容看 F12 的 Console 和 Network,数据库也要替换 http。
  • 反代/CDN 场景记得传 X-Forwarded-Proto。
  • 排查完清浏览器缓存和 HSTS,再确认 443 端口放行。
版权声明:本文来自 GJ站长论坛《小皮面板部署SSL后依旧提示不安全怎么办》
原文链接:https://www.gj0.com/thread-480.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~