每当 遇到“SSL证书不受信任”错误时候,通常是由于证书验证失败导致浏览器无法建立安全连接,造成这样原因的首先想到的是证书可能不是由受信任的证书颁发机构(CA)签发的,证书可能过期了也造成不信任,还有一种情况是证书链不完整或域名不匹配也是一个常见原因,下面是证书不受信任常见原因及解决方法:
一、常见原因
自签名或内部证书
证书未由受信任的证书颁发机构(CA)签发,如自签名证书或企业内部CA证书,浏览器无法识别。
证书链不完整
服务器未正确配置中间证书,导致浏览器无法构建完整的信任链。
证书已过期
证书超过有效期,或服务器时间与客户端时间不同步。
域名不匹配
证书绑定的域名与用户访问的域名不一致(如 www.example.com vs example.com)。
根证书未更新
客户端(浏览器/操作系统)缺少最新的根证书库,无法识别新CA。
证书被吊销
CA因安全原因吊销证书,且客户端通过OCSP/CRL检测到吊销状态。
二、修复方法
1. 使用受信任的CA签发证书
自签名/内部证书:改用免费或商业CA(如Let's Encrypt、DigiCert)签发的证书。
企业环境:将内部CA的根证书手动安装到客户端受信任的根证书库。
2. 配置完整的证书链
服务器配置:确保服务器同时部署域名证书 + 中间证书(非根证书)。
检查命令:
bash
复制
openssl s_client -connect example.com:443 -showcerts
工具检测:使用 SSL Labs SSL Test 验证证书链完整性。
3. 检查证书有效期
在浏览器中点击锁图标 → 查看证书 → 确认有效期。
若过期,需联系CA续订证书。
4. 确保域名匹配
确保证书的Common Name (CN) 或 Subject Alternative Names (SAN) 包含所有使用的域名(如主域名、子域名)。
5. 同步系统时间
客户端/服务器:检查时间、时区设置,确保与标准时间(如UTC)同步。
6. 更新根证书库
操作系统:安装系统更新(如Windows Update、Linux的ca-certificates包)。
浏览器:确保使用最新版本。
7. 处理吊销状态
若证书被吊销,需重新申请并替换证书。
临时方案(不推荐):在客户端禁用OCSP/CRL检查(存在安全风险)。
8. 检查服务器配置
Apache:配置 SSLCertificateFile(域名证书)和 SSLCertificateChainFile(中间证书)。
Nginx:将SSL证书与中间证书合并为一个文件,通过 ssl_certificate 指定。
IIS:使用“完成证书请求”功能导入证书,并绑定到站点。
三、用户端临时解决方案
高级选项绕过(仅限临时)
浏览器提示页点击“高级” → “继续前往网站”(不推荐,存在风险)。
清除缓存
清除浏览器SSL缓存或重启浏览器。
四、预防措施
定期更新证书:设置到期提醒,使用自动化工具(如Certbot)。
监控工具:使用Uptime Robot等监控服务检测证书状态。
标准CA:避免自签名证书,优先选择可信CA。
上面四大步骤,可系统性排查并解决“SSL证书不受信任”问题,确保网站安全可信。若为网站管理员,建议优先使用Let's Encrypt等免费CA,并定期检查配置。