验证证书有效性
证书过期是验证失败的常见原因。需检查证书有效期是否在有效时间范围内,若已过期需立即更新证书。同时确认证书颁发机构(CA)是否被客户端信任,建议选择Digicert、Geotrust等知名CA机构签发证书。
- 使用SSL检测工具验证证书状态
- 确认服务器系统时间准确
- 检查证书是否被吊销或篡改
配置完整证书链
证书链不完整会导致信任链断裂。需确保服务器安装完整的证书链文件,包括根证书和中间证书。对于Apache/Nginx服务器,应通过SSLCertificateChainFile指令配置中间证书。
- 从CA获取完整的证书包
- 检查证书文件顺序:服务器证书→中间证书→根证书
- 使用openssl verify命令验证链完整性
检查域名匹配性
证书绑定的域名与实际访问域名必须完全匹配。通配符证书(*.example.com)可解决多子域名问题,多域名证书则适用于不同主域名场景。若使用CDN或反向代理,需确认证书包含所有经过的域名节点。
校准系统时间
SSL/TLS验证依赖准确的时间同步。需确保服务器和客户端系统时间误差在5分钟以内,建议配置NTP时间同步服务。时区设置错误也会导致证书有效期判断异常。
检查代理设置
网络代理可能干扰证书验证过程。需排查代理服务器的SSL拦截配置,禁用可能修改HTTPS流量的中间件。对于需要身份验证的代理,应确保凭据正确且采用安全的认证方式。
- 检查代理日志中的HTTP错误代码
- 测试直连服务器绕过代理
- 更新代理软件到最新版本
证书验证失败需从证书本身、服务器配置、网络环境三个维度进行排查。优先检查证书有效期和域名匹配性,其次验证证书链完整性,最后排查代理设置和系统时间。定期更新证书并启用HSTS策略可有效预防此类问题。