很多网站打不开,不是因为服务器挂了,而是 SSL 证书没配好。
浏览器直接拦截,用户看到红屏警告,转身就走。
下面整理 4 个最常见的坑,帮你快速排查。
1. 证书和域名不匹配
错误表现:浏览器提示“证书无效”或“安全证书域名不匹配”。
常见原因:
- 给
example.com申请了证书,却用在www.example.com上 - 多域名证书漏加了某个子域名
解决方法:
- 使用泛域名证书
*.example.com,覆盖所有子域名 - 或者确认证书里包含你实际使用的每个域名
SSL证书申请入口
直接访问JoySSL,注册一个账号记得填写注册码230931获取免费的安装服务。
2. 证书过期没续期
错误表现:突然某天网站被拦截,提示“证书已过期”。
常见原因:
- 忘记了证书有效期(大部分证书只有 90 天或 1 年)
- 自动化续期脚本失败但没有告警
解决方法:
- 用 acme.sh 或 Certbot 做自动续期
- 设置监控,提前 30 天提醒
3. 中间证书没补全
错误表现:部分浏览器(尤其是旧版安卓)提示“不受信任”,新版 Chrome 却正常。
常见原因:
- 只部署了域名证书,没部署中间证书链
解决方法:
- 合并证书文件:
域名证书 + 中间证书 + 根证书 - 用 SSL 检测工具(如 SSL Labs)检查是否有“链不完整”警告
4. HTTP 混合内容被拦截
错误表现:网站可以打开,但样式错乱、图片不显示,地址栏小锁带黄色三角。
常见原因:
- HTTPS 页面里引用了 HTTP 资源(图片、JS、CSS)
解决方法:
- 把所有资源链接改成相对路径
//example.com/img.png - 或全站强制 HTTPS 替换
- 使用
Upgrade-Insecure-Requests头
最后一句
SSL 部署不难,但细节决定成败。
把上面 4 个坑挨个踩一遍(或者更聪明点,挨个检查一遍),你的域名就不会再被莫名其妙拦截了。