通过安全超文本传输协议 (HTTPS)加载您的网站是一项关键的网络安全最佳实践。但是,如果您没有正确安装安全套接字层 (SSL) 证书,您可能会遇到许多错误,例如NET::ERR_CERT_COMMON_NAME_INVALID。
诚然,解决此错误可能有点棘手,因为它可能出现在您的浏览器中的原因有很多。如果您可以缩小原因,解决此 SSL 问题根本不需要很长时间。
在本文中,我们将解释NET::ERR_CERT_COMMON_NAME_INVALID错误的含义,并向您展示它在各种浏览器中的外观示例。然后我们将分享您可以用来修复它的几种方法。
- 了解导致NET::ERR_CERT_COMMON_NAME_INVALID错误的原因
- NET::ERR_CERT_COMMON_NAME_INVALID错误的变体
- 如何修复NET::ERR_CERT_COMMON_NAME_INVALID错误
了解导致NET::ERR_CERT_COMMON_NAME_INVALID错误的原因
在我们深入研究导致NET::ERR_CERT_COMMON_NAME_INVALID错误的原因之前,让我们分解相关术语。在“common name”这个错误的引用是在域上的SSL证书已安装。
例如,如果您的网站位于mydomain.com,则您的SSL证书上的通用名称将是mydomain.com。因此,正如错误消息所述,NET::ERR_CERT_COMMON_NAME_INVALID背后的根本问题是您的SSL证书上的通用名称由于某种原因无效。
通常,这意味着您的证书上的名称与其安装的域不匹配。但是,还有其他情况可能会导致此消息出现在您的浏览器中,包括:
- 您的SSL证书不考虑您域的www和非www变体。
- 您尝试将您的网站切换到HTTPS,而没有先安装SSL证书。
- 您的站点安装了自签名SSL证书,并且您的浏览器无法识别它是有效的或安全的。
- 您的防病毒软件正在阻止您的SSL连接。
- 一个浏览器扩展的干扰与您的网站的SSL连接。
- 您的代理设置配置错误。
- 您的浏览器缓存或SSL状态已损坏。
如您所见,许多不同的因素都可能导致NET::ERR_CERT_COMMON_NAME_INVALID错误。这可能会使确定正确的解决方案变得困难,但一点耐心将有助于您解决问题。
NET::ERR_CERT_COMMON_NAME_INVALID错误的变体
我们将很快深入研究NET::ERR_CERT_COMMON_NAME_INVALID错误的解决方案。但是,首先,您需要能够在浏览器中识别它。
下面是这个问题在网络上最流行的客户端中的样子。
Chrome浏览器
像许多其他与HTTPS相关的错误一样,谷歌浏览器通过显示“Your connection is not private”警告来表示存在常见的名称不匹配:
Google Chrome中的NET::ERR_CERT_COMMON_NAME_INVALID错误
您将看到主要消息下方列出的特定问题 (NET::ERR_CERT_COMMON_NAME_INVALID)。看到此屏幕的用户可以选择使用HTTP继续访问您的站点。
此消息有可能吓跑许多潜在访客。
Firefox浏览器
Firefox 提供了一个稍微不同的通用名称不匹配错误的变体。在“Your connection is not secure”标题下,它会告诉您您尝试访问的网站配置不正确,并建议您不要访问它。
您可能还会看到一条消息,内容为“Warning: Potential Security Risk Ahead(警告:潜在的安全风险)”:
Mozilla Firefox中的安全风险警告
它也可能在下面显示更具体的错误消息,指出安全证书无效并且仅配置为使用列出的域名。
您还将看到“SSL_ERROR_BAD_CERT_DOMAIN”代码。
Safari浏览器
在Safari中,相应的错误消息显示为“Safari can’t verify the identity of the website(Safari无法验证网站的身份)”或“Safari can’t open the page(Safari无法打开页面)”,然后是您尝试访问的域。
它还可能声明站点的SSL证书无效或无法建立安全连接:
Safari浏览器出错
与其他浏览器相比,Safari的常见名称不匹配错误消息有些含糊。
如果您看到此错误窗口,则其背后可能还有其他与SSL相关的问题,因此请务必寻求各种解决方案。
IE浏览器
Internet Explorer切入正题,并通知您“此站点不安全(This site is not secure)”。并表示SSL证书的可信度存在问题。此消息后可能会跟随一些不同的规范:
Internet Explorer中的安全证书警告
与Chrome中的NET::ERR_CERT_COMMON_NAME_INVALID错误相当的问题的问题通常是:“该网站提供的安全证书是针对不同网站的地址颁发的。”
它还将为访问者提供一些潜在的解决方案,例如在他们输入的URL中添加或删除“www”。
但是,此类修复只是暂时的。持续存在的错误仍可能会损害您网站的可信度并阻止您增加流量,因此最好找到问题的根源并迅速解决。
如何修复NET::ERR_CERT_COMMON_NAME_INVALID错误
正如您现在所知,NET::ERR_CERT_COMMON_NAME_INVALID错误有很多可能的原因。因此,它也有很多潜在的修复方法。您可以尝试在您的网站上解决此问题的九种方法。
1. 验证您的SSL证书是否正确
NET::ERR_CERT_COMMON_NAME_INVALID错误的最基本原因是您站点的域与您的SSL证书上列出的通用名称不匹配。因此,您要尝试的第一个修复是查看您的证书以确定它是否配置错误。
在整篇文章中,我们将展示在Google Chrome中解决此错误的示例。但是,其他浏览器应该使您能够通过类似的步骤完成相同的结果。
首先,单击URL栏中的“不安全(Not Secure)”警告。在打开的菜单中,选择Certificate证书 (Invalid无效):
在Google Chrome中打开证书检查器
这将打开一个小窗口,显示您的SSL证书的详细信息:
在Google Chrome中检查网站的SSL证书
此处列出的域应与您尝试访问的域相匹配。如果没有,您就会知道您的证书配置错误。
最好的解决方案是从您的站点中删除证书并安装一个新证书。
验证通配符SSL证书
当涉及通配符SSL证书时,NET::ERR_CERT_COMMON_NAME_INVALID错误会变得稍微复杂一些 。这种类型的证书旨在加密多个子域的数据。
因此,不是在证书上列出一个通用名称,而是 使用诸如*.example.com 之类的子域级别。如果您安装了通配符证书并且看到NET::ERR_CERT_COMMON_NAME_INVALID错误,则可能意味着您的证书不涵盖您尝试访问的子域。
在浏览器中验证SSL证书时请记住这一点。另请注意,通配符SSL证书仅保护一个子域级别。例如,您需要为*.example.com 和*.subdomain.example.com 提供单独的证书。
验证主题备用名称 (SAN) 证书
主题备用名称 (SAN) 证书可以加密指向同一站点的多个域的数据。这可能包括www和非www变体、子域和顶级域 (TLD)变体。
如果您尝试访问的站点使用SAN证书,则在您的浏览器中验证 SSL 证书时,您可能需要做一些进一步的挖掘。
在Chrome中,单击证书窗口中的详细信息:
Google Chrome中证书检查器窗口的“详细信息”选项卡
向下滚动,直到找到标有Extension Subject Alternative Name的部分。在它下方,您应该会看到证书保护的所有域的列表。
2. 检查错误配置的重定向
如果您将站点从一个域重定向到另一个域, 并且没有在第一个域上安装SSL证书,则可能会导致错误。例如,许多SSL证书不会自动说明您网站的www和非www版本。
假设您将www.example.com设置为重定向到example.com。如果您在example.com上而不是在www.example.com上安装 SSL 证书,您可能会看到NET::ERR_CERT_COMMON_NAME_INVALID错误。
如果您不确定您的网站是否以这种方式重定向访问者,您可以使用Redirect mapper进行检查:
重定向映射器工具
此工具仅检查 您网站的HTTP和HTTPS版本之间以及www和非www版本之间的重定向。
如果您发现重定向干扰了您的SSL证书,您可以尝试几种解决方案。一种是将证书上的通用名称更改为正确版本的域。
您还可以为要重定向的域获取另一个证书,或者获取涵盖两个域的SAN证书。对于通配符域,您需要列出要加密的每个子域,而不是在它们之间重定向。
3. 确保您的WordPress地址和站点地址匹配
在没有安装SSL证书的情况下,意外地将您的站点地址切换到HTTPS是相当容易的,尤其是在WordPress中。无论您认为自己是在实施安全最佳实践,还是只是在网站设置中闲逛,您都可能无意中导致了NET::ERR_CERT_COMMON_NAME_INVALID错误。
解决这个问题相当简单。
在您的WordPress仪表板中,导航到设置>常规。在那里,确保您的WordPress地址和站点地址匹配:
检查WordPress地址和站点地址设置
此外,如果这些URL使用HTTPS而您没有安装SSL证书,请将它们更改为HTTP。请记住保存您所做的任何编辑。
如果进行此切换后错误仍然存在,您可能还需要通过 hpMyAdmin更改数据库中的地址。
您可以通过您的主机帐户访问此程序。通过单击左侧边栏中的名称打开您站点的数据库,然后访问wp_options表:
检查phpMyAdmin中的siteurl和home行
查找siteurl 和home行。根据需要编辑地址,然后检查您是否可以访问您的站点。
4. 确定您的站点是否使用自签名SSL证书
当您通过Let’s Encrypt或其他信誉良好的来源获得SSL证书时,它由公认的证书颁发机构 (CA) 签署。自签名证书不受CA支持,而是由用户创建。
自签名证书不如CA认可的证书安全。一些用户发现它们很有吸引力,因为它们是免费的,但Let’s Encrypt也免费提供授权的SSL证书。除了为内部服务器目的或localhost use设置一个之外,真的没有理由使用自签名证书。
由于它们不提供授权证书所提供的全面保护,浏览器通常将使用自签名证书的站点标记为“不安全”。在某些情况下,这可能会导致NET::ERR_CERT_COMMON_NAME_INVALID错误。
您可以使用我们在本文前面描述的第一种方法检查证书的CA。此数据将列在证书信息弹出窗口中:
在Google Chrome中检查CA的SSL证书
如果您认为您的站点使用自签名证书并且您不是开发人员,那么最好的做法是联系为您构建站点的人员并要求他们将其删除。这样,您可以用授权的替换它。
如果您有意安装了自签名证书,则可以使用浏览器对其进行身份验证以克服错误。此过程因您的浏览器和操作系统而异,通常比简单地安装Let’s Encrypt证书更困难。
5. 清除您的SSL状态和浏览器缓存
如果您的证书配置中的所有内容看起来都正确,但您仍然看到NET::ERR_CERT_COMMON_NAME_INVALID错误,则您可能需要清除SSL状态。浏览器可能会缓存SSL证书以加快加载时间。如果您刚刚安装了新证书,即使一切正常,您仍可能会看到错误消息。
同样,此过程因您的浏览器和操作系统而异。在本示例中,我们将重点介绍Chrome,但会向您展示如何在Windows和macOS上清除SSL状态。
对于Windows,打开开始菜单并输入Internet选项。选择出现的相同选项,然后转到Internet选项窗口中的内容选项卡。现在单击清除SSL状态按钮:
在Windows中清除SSL状态
在macOS上,您需要使用钥匙串管理器来清除SSL状态。您可以通过转到设置 > 隐私和安全 > 管理证书在Chrome中访问它:
在macOS上的Chrome中打开管理证书设置
查找为您尝试访问的域列出的证书。右键单击它并选择删除:
使用macOS钥匙串管理器删除证书数据。
系统可能会提示您提供用户密码。
在此处删除证书应该会清除您的SSL状态并解析NET::ERR_CERT_COMMON_NAME_INVALID(如果缓存损坏是原因)。
清除浏览器缓存也是明智之举 。在Chrome中,这就像打开设置菜单并选择更多工具 > 清除浏览器数据一样简单:
清除浏览数据
您还可以导航到您的隐私和安全设置以指定要清除的数据。只需确保 从选项列表中选择缓存的图像和文件。
6. 检查您的代理设置
代理服务器,用于路由网络流量,以保留客户或原始服务器的匿名性。如果您的代理设置配置错误,则可能会限制您的Web访问并导致各种问题,包括SSL错误。
为了防止此类问题,您需要重置代理设置。此过程因您使用的是Windows计算机还是Mac计算机而异。
无论您使用哪种操作系统,您都可以通过谷歌浏览器访问您的代理设置,方法是导航到设置 > 高级 > 系统 > 打开您计算机的代理设置:
通过Google Chrome打开代理设置
如果您使用的是Windows,这将打开Internet属性 窗口。单击连接选项卡,然后选择LAN设置 按钮并选择自动检测设置:
自动检测您的网络设置
在 macOS 上,这将打开您的网络设置窗口。单击“代理” 选项卡并选择“自动代理配置”:
为macOS开启自动代理配置
然后,您可以尝试再次访问您的站点,以查看错误是否已解决。
7. 浏览器扩展冲突故障排除
与WordPress插件一样,浏览器扩展并不总是能很好地相互配合。
一些此类冲突可能会干扰您站点的HTTPS连接,从而导致各种错误。
要查看浏览器扩展是否可能导致NET::ERR_CERT_COMMON_NAME_INVALID错误,请在隐身窗口中打开您的站点:
谷歌浏览器中的隐身窗口
这将减轻您安装的任何扩展的影响。如果您可以在隐身模式下正常访问您的网站,那么浏览器扩展程序可能是您遇到麻烦的根源。
在这种情况下,最好的解决方案是一次禁用一个扩展以确定导致错误的原因。然后,您可以删除罪魁祸首以永久解决问题。
8. 更改您的防病毒软件设置
同样,防病毒软件可能会阻止正确的HTTPS连接。如果您在计算机上运行此类程序,请检查其设置以查看是否禁用了HTTPS扫描。如果是这样,您将需要启用它。
如果您更改此设置并且问题没有消失,您可能需要考虑完全禁用该软件。如果这修复了NET::ERR_CERT_COMMON_NAME_INVALID错误,那么您可以联系防病毒程序的支持团队以获得进一步的帮助。
当然,您不希望在很长一段时间内禁用防病毒软件,因为这会带来安全风险。因此,最好在等待支持人员的响应时重新打开它,并按照他们的指导解决错误,同时保持计算机的安全。
9. 更新您的浏览器和操作系统 (OS)
尝试访问某些网站时,过时的操作系统可能会导致错误。因此,确保您运行的是最新版本的Windows、macOS或Linux是明智之举。
您还需要验证您的浏览器是否是最新的。要在Chrome中执行此操作,请打开“设置” 菜单,然后选择“帮助”>“关于Google Chrome”:
打开谷歌浏览器的关于部分
您可以在此处查看浏览器的版本并开启自动更新:
查看您的Google Chrome版本
如果Chrome不是最新版本,打开此屏幕应该会自动启动更新。
小结
当涉及到浏览器错误时,NET::ERR_CERT_COMMON_NAME_INVALID是一个很难修复的问题。但是,如果您可以缩小导致问题的范围,您就可以快速解决问题并保持您的网站在访问者中的可信度。
作为修复此错误的第一步,我们建议首先在浏览器中检查您的SSL证书并查找任何配置错误的重定向。如果这些没有帮助,请开始查看我们在本指南中提到的所有其他方面。
评论留言