无论您是网站运维人员还是普通用户,了解常见的 SSL 证书错误及其解决方法都至关重要。本文 , 国科云将带您逐一排查并解决这些令人头疼的问题。
错误现象:
浏览器显示 “您的连接不是私密连接”、“此网站的安全证书已过期”或“ NET::ERR_CERT_DATE_INVALID ”等错误。
原因分析:
SSL 证书并非永 久有效,它有一个明确的有效期(目前最长为 13 个月)。一旦超过这个有效期,证书就会失效,浏览器将拒绝建立安全连接。这是出于安全考虑,强制定期验证网站身份和密钥更新。
解决方法:
1. 对于网站所有者:
重新购买并部署证书:联系您的证书颁发机构( CA )或服务商,续费或购买一个新的证书。
完成验证:根据证书类型( DV , OV , EV )完成相应的域名或组织验证。
安装新证书:将新颁发的证书文件部署到您的 Web 服务器(如 Nginx , Apache , IIS 等)上。
重启服务:部署后,重启 Web 服务器服务以使新证书生效。
2. 预防措施:
设置提醒:在证书到期前 30 天、 15 天、 7 天设置多次提醒。大多数证书服务商也提供邮件提醒服务。
自动化管理:对于 DV 证书,强烈推荐使用工具实现全自动申请和续期,一劳永逸。
使用监控工具:使用第三方网站监控服务或自建脚本,定期检查证书有效期。
错误现象:
浏览器提示 “此网站出具的安全证书是针对其他网站的地址”、“ NET::ERR_CERT_COMMON_NAME_INVALID ”。
原因分析:
SSL 证书中有一个“通用名称”( CommonName , CN )字段,它必须与用户实际访问的网站域名完全一致。如果访问 www. guokeyun .com ,但证书是为 guokeyun .com 颁发的,就会触发此错误。
常见场景:
证书仅覆盖主域名( guokeyun .com ),但用户访问了带 www 的域名( www. guokeyun .com ),或反之。
证书是多域名或通配符证书,但当前访问的域名恰好不在证书的覆盖列表中。
服务器配置错误,将一个站点的证书用在了另一个域名的站点上。
解决方法:
1. 检查证书覆盖的域名:使用在线 SSL 检查工具或浏览器自带的证书查看器,确认证书到底为哪些域名提供保护。
2. 确保证书类型匹配需求:
如果同时有根域名和 www 域名访问需求,应申请同时包含 example.com 和 的多域名证书,或者申请覆盖 .example.com 的通配符证书。
3. 检查服务器配置:确保 Web 服务器的虚拟主机配置正确,每个域名都指向了正确的网站目录并加载了对应的证书文件。
错误现象:
“此证书并非由可信的证书颁发机构颁发”、“ NET::ERR_CERT_AUTHORITY_INVALID ”。
原因分析:
浏览器和操作系统维护着一个 “受信任的根证书颁发机构”列表。如果您的 SSL 证书是由一个不在这个列表中的机构(即“不受信任的 CA ”)签发的,或者证书链不完整,就会出现此错误。
具体原因:
自签名证书:自己创建的证书,未经公共信任的 CA 签名。常用于内部测试环境。
证书链不完整: SSL 证书的信任是链式的:服务器证书→中间 CA 证书→根 CA 证书。如果服务器没有在配置中发送“中间 CA 证书”,浏览器可能无法追溯到受信任的根证书,从而导致验证失败。
使用了过时或不常见的 CA :某些老旧的系统或特定区域的 CA 可能未被主流浏览器广泛信任。
解决方法:
1. 从受信任的 CA 购买证书:确保您的证书来自全球或国内主流且被广泛信任的 CA (如 DigiCert , Sectigo , GlobalSign ,或国内的 CFCA、国科云 等)。
2. 安装中间证书:这是最常见的解决方案。当您从 CA 获取证书时,通常会得到一个或多个“中间 CA 证书”文件。您需要将这些中间证书与您的服务器证书捆绑在一起,并在 Web 服务器配置中正确指定这个捆绑后的文件。
可以使用在线 SSL 检查工具验证您的证书链是否已正确安装。
错误现象:
在较老的浏览器上可能正常,但在现代浏览器(如 Chrome )中访问 IP 地址或特定域名时,出现“名称不匹配”错误。
原因分析:
早期 SSL 证书只使用“通用名称”( CN )来标识域名。现代标准要求使用“主题备用名称”( SAN )扩展字段来列出所有受保护的域名。如果证书没有 SAN 字段,而浏览器又严格执行新标准,即使 CN 正确,也会报错。
解决方法:
申请新证书时,确保 CA 提供了 SAN 扩展。几乎所有正规的现代证书都默认包含此功能。
如果您需要保护多个不同的域名(例如 example.com , example.net , ip.address ),务必申请多域名证书( SAN 证书),并在申请时明确列出所有需要的域名。
错误现象:
浏览器地址栏虽然显示了 HTTPS 和小锁,但小锁上带有感叹号或三角警告,点击后显示“您与此网站之间建立的连接并非完全安全”或“此页面上有其他资源未使用安全连接”。
原因分析:
这是最常见且容易被忽略的问题。您的网页主体是通过 HTTPS 加载的,但页面中包含的子资源(如图片、 JavaScript 脚本、 CSS 样式表、 iframe 等)却是通过不安全的 HTTP 协议加载的。这被称为“混合内容”( MixedContent )。这会破坏整个页面的安全性,因为攻击者可能劫持这些 HTTP 资源来篡改页面内容。
解决方法:
1. 识别混合内容:
使用浏览器开发者工具(按 F12 ),查看“控制台”( Console )或“安全”( Security )标签页,通常会明确列出不安全的资源 URL 。
2. 更新资源链接:
将页面中所有资源的引用链接( src 或 href 属性)从 http:// 改为 https:// 。
如果第三方服务(如 CDN 、统计代码、字体库)不支持 HTTPS ,考虑寻找替代方案。
3. 使用协议相对 URL :将链接写成 //example.com/resource.js ,浏览器会自动根据当前页面的协议( HTTP 或 HTTPS )来加载资源。但请注意,这种方法在某些特定场景下已不推荐,直接使用 HTTPS 是更佳实践。
服务器时钟不正确:如果服务器的时间设置错误(过快或过慢),浏览器在检查证书有效期时可能会误判证书 “尚未生效”或“已过期”。确保服务器使用 NTP 服务进行时间同步。
浏览器缓存或问题:有时旧的证书信息或 SSL 状态会被浏览器缓存。尝试清除浏览器缓存和 SSL 状态。
Chrome 方法:设置 -> 隐私设置和安全性 -> 清除浏览数据 -> 高级 -> 选择“缓存的图片和文件”以及“其他站点数据”。
SNI 问题:如果一台服务器使用一个 IP 地址托管多个 HTTPS 网站,需要依赖“服务器名称指示”( SNI )技术来传递正确的证书。老旧的客户端不支持 SNI ,会导致收到错误的证书。如今这已不是大问题,但若需支持老旧设备,需考虑其他方案。
上面这几种情况基本涵盖了常见的 SSL 证书错误类型,通过本篇介绍,基本上 具备了诊断和修复绝大多数 SSL 证书错误的能力。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69996004/viewspace-3101585/ ,如需转载,请注明出处,否则将追究法律责任。