证书链不完整是SSL部署失败的主因,需下载完整证书包并合并中间证书:Apache用SSLCertificateChainFile,Nginx用fullchain.pem;用openssl s_client验证证书块数量;同时核对SAN域名、服务重载、文件权限及客户端时间与缓存。
SSL证书部署出错,不是证书本身有问题,而是配置链路上某个环节断了。重点不在“重装”,而在“定位断点”。下面从最常卡住的几个地方入手,直接给可操作的解法。
浏览器报“证书不受信任”,大概率是只传了服务器证书,漏了中间证书。根证书一般不用手动装,但中间证书必须一起部署。
SSLCertificateFile 和 SSLCertificateChainFile;Nginx 则把服务器证书和中间证书合并进同一个 .pem 文件再引用openssl s_client -connect yoursite.com:443 -showcerts 查输出里有没有多个 -----BEGIN CERTIFICATE----- 块——少于2个基本就是链不完整访问 www.example.com 报错,但 example.com 没问题?说明证书里没包含这个子域名。
example.com,那 www.example.com 就不被覆盖;要支持多域名或子域名,得申请带 SAN 的证书,或直接用通配符证书(*.example.com)证书文件明明放对位置了,重启服务后还是旧证书——脚本没真正生效,或 Web 进程读不了新文件。
nginx -s reload 或 systemctl reload nginx 成功执行的记录;光复制文件不 reload 是无效的www-data 或 nginx),且权限为 644(证书)和 600(私钥)你本地测一切正常,用户却看到红屏——问题可能不在服务器,而在用户侧或网络中间节点。
NET::ERR_CERT_DATE_INVALID 多半是设备时间不准;ERR_CERT_AUTHORITY_INVALID 可能是用了自签名或小众 CAchrome://settings/clearBrowserData → 勾选“SSL 状态”再清除