最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
SSL 证书部署错误排查如何解
时间:2026-08-07 10:37:48 编辑:袖梨 来源:一聚教程网
证书链不完整是SSL部署失败的主因,需下载完整证书包并合并中间证书:Apache用SSLCertificateChainFile,Nginx用fullchain.pem;用openssl s_client验证证书块数量;同时核对SAN域名、服务重载、文件权限及客户端时间与缓存。
SSL证书部署出错,不是证书本身有问题,而是配置链路上某个环节断了。重点不在“重装”,而在“定位断点”。下面从最常卡住的几个地方入手,直接给可操作的解法。
证书链没装全
浏览器报“证书不受信任”,大概率是只传了服务器证书,漏了中间证书。根证书一般不用手动装,但中间证书必须一起部署。
- 去证书颁发机构正式下载完整的证书包(通常含 domain.crt、ca-bundle.crt 或 chain.pem)
- Apache 需同时指定
SSLCertificateFile和SSLCertificateChainFile;Nginx 则把服务器证书和中间证书合并进同一个.pem文件再引用 - 用
openssl s_client -connect yoursite.com:443 -showcerts查输出里有没有多个-----BEGIN CERTIFICATE-----块——少于2个基本就是链不完整
域名没对上
访问 www.example.com 报错,但 example.com 没问题?说明证书里没包含这个子域名。
- 打开证书详情(浏览器点地址栏锁图标 → “连接是安全的” → “证书有效”),重点看 Subject Alternative Name (SAN) 字段
- 如果只写了
example.com,那www.example.com就不被覆盖;要支持多域名或子域名,得申请带 SAN 的证书,或直接用通配符证书(*.example.com) - IIS 或 Nginx 配置里绑定了多个主机名,但证书只覆盖其中一个,也会触发不匹配警告
服务端没 reload 或权限不对
证书文件明明放对位置了,重启服务后还是旧证书——脚本没真正生效,或 Web 进程读不了新文件。
- 检查部署日志里是否有
nginx -s reload或systemctl reload nginx成功执行的记录;光复制文件不 reload 是无效的 - 确认证书文件属主是运行 Web 服务的用户(如
www-data或nginx),且权限为644(证书)和600(私钥) - 私钥路径写错、密码保护未解除、SELinux 上下文限制,都可能导致服务启动失败却静默忽略
客户端或中间层在捣乱
你本地测一切正常,用户却看到红屏——问题可能不在服务器,而在用户侧或网络中间节点。
- 先让对方截图错误码,比如
NET::ERR_CERT_DATE_INVALID多半是设备时间不准;ERR_CERT_AUTHORITY_INVALID可能是用了自签名或小众 CA - CDN 或防火墙开了 HTTPS 检测功能(如 SSL Inspection),会主动拦截并替换证书,需关闭该策略或把 CA 根证书导入设备信任库
- 浏览器缓存了旧证书,清掉 SSL 状态:
chrome://settings/clearBrowserData→ 勾选“SSL 状态”再清除