返回列表 发布新帖
查看: 482|回复: 0

SSL 证书报错原因及排查方法

发表于 2025-9-22 17:20:16 | 查看全部 |阅读模式

这里或许是互联网从业者的最后一片净土,随客社区期待您的加入!

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在网站运维中,SSL/TLS 证书报错 是常见问题之一。证书错误会导致浏览器弹出“不安全连接”提示,严重影响用户信任和业务访问。本文将介绍常见的 SSL 报错类型、可能原因及排查思路。
一、常见 SSL 报错类型
  • NET::ERR_CERT_COMMON_NAME_INVALID
  • NET::ERR_CERT_DATE_INVALID
  • NET::ERR_CERT_AUTHORITY_INVALID
  • SSL Handshake failed / Unable to verify certificate
  • Mixed Content(混合内容警告)
  • 自签名证书警告
  • Chain issues(证书链错误)
二、主要报错原因与分析
1. 域名不匹配(Common Name Invalid)
报错表现:
  • “此连接不是私密连接…证书上的域名与请求的域名不匹配”
可能原因:
  • 访问的域名未包含在证书的 CN(Common Name) 或 SAN(Subject Alternative Name) 中。
  • 使用了二级域名或泛域名证书错误。
排查方法:
  • 使用 openssl s_client -connect yourdomain:443 -servername yourdomain 查看证书信息。
  • 确认证书签发时包含正确的域名。
2. 证书过期(Date Invalid)
报错表现:
  • “证书已过期” 或 “Your connection is not private”
可能原因:
  • 证书有效期已过或未生效。
  • 服务器系统时间错误。
排查方法:
查看证书有效期:
  1. openssl x509 -in yourcert.pem -noout -dates
复制代码
  • 确保服务器时间同步(例如使用 ntpd 或 chrony)。
  • 及时续期证书(Let’s Encrypt 等免费证书有效期只有 90 天)。
3. 非受信任 CA(Authority Invalid)
报错表现:
  • “证书不是由受信任的证书颁发机构签发”
可能原因:
  • 使用了自签名证书或不受信任的小厂 CA。
  • 证书链未正确配置(缺少中间证书)。
排查方法:
  • 确保使用权威 CA(如 DigiCert、Let’s Encrypt)。
  • 安装完整证书链(fullchain.pem)。
  • 使用 SSL Labs 测试站点检查链配置。
4. 证书链不完整(Chain Issues)
报错表现:
  • 某些浏览器正常,但部分设备或旧版浏览器报错。
原因:
  • Nginx 或 Apache 仅加载了服务端证书,未包含中间证书。
解决方法:
  • 确保证书文件包含服务端证书 + 中间证书:
  1. ssl_certificate /etc/nginx/ssl/fullchain.pem;
复制代码
5. 协议或加密套件不兼容
报错表现:
  • “SSL Handshake failed”
可能原因:
  • 旧版客户端不支持 TLS1.2/TLS1.3。
  • 服务器禁用了必要的加密算法。
排查方法:
  • 检查 Nginx/Apache 配置:
  1. ssl_protocols TLSv1.2 TLSv1.3;
复制代码
  • 使用 openssl s_client -connect yourdomain:443 测试握手。
6. 混合内容(Mixed Content)
报错表现:
  • 页面加载时部分资源(如图片、脚本)使用 HTTP 而非 HTTPS。
解决方法:
  • 确保所有资源使用 HTTPS 链接。
  • 在 Nginx 中强制 HTTPS:
  1. add_header Content-Security-Policy upgrade-insecure-requests;
复制代码
7. 证书未正确安装
报错表现:
  • 部分设备提示“无法建立安全连接”。
原因:
  • 错误的证书路径或格式。
  • PEM/CRT 文件内容不完整或顺序错误。
排查方法:
  • 确认 Nginx/Apache 配置路径与文件一致。
  • 检查证书文件格式(PEM 编码)。
三、分析和调试工具
  • OpenSSL
  1. openssl s_client -connect yourdomain:443 -servername yourdomain
复制代码
  • curl

  1. curl -vk https://yourdomain
复制代码
  • 浏览器开发者工具:F12 → Security → 查看证书链。
  • SSL Labs 测试:全面检查证书有效性与兼容性。
四、预防和最佳实践
  • 自动续期:使用 Certbot 或 acme.sh 配置自动续期。
  • 启用 HSTS:强制浏览器使用 HTTPS:
  1. add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
复制代码
  • 测试兼容性:在不同浏览器、设备上测试。
  • 定期巡检:建立监控,提前提醒证书即将过期。
五、总结
  • SSL 报错通常由 域名不匹配、证书过期、非受信任 CA、证书链不完整 等问题引起。
  • 使用 openssl、curl、SSL Labs 等工具能快速定位问题。
  • 通过正确配置证书链、定期续期和启用现代协议,可以有效避免大部分报错。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2001-2025 Suike Tech All Rights Reserved. 随客交流社区 (备案号:津ICP备19010126号) |Processed in 0.108268 second(s), 7 queries , Gzip On, MemCached On.
关灯 在本版发帖返回顶部
快速回复 返回顶部 返回列表