迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 网络 >

修复 NET::ERR_CERT_COMMON_NAME_INVALID 错误的8个方法

作者:迹忆客 最近更新:2021/12/12 浏览次数:

通过安全超文本传输协议 (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 错误的原因之前,让我们了解一些相关术语。 此错误引用的“common name”是安装 SSL 证书的域。

例如,如果我们网站位于 mydomain.com,则 SSL 证书上的通用名称将是 mydomain.com。 因此,正如错误消息 NET::ERR_CERT_COMMON_NAME_INVALID 所述, 背后的根本问题是 SSL 证书上的通用名称由于某种原因无效而导致的。

通常,这意味着证书上的名称与其安装的域不匹配。 但是,还有其他情况可能会导致此消息出现在浏览器中,包括:

  • SSL 证书不考虑域的 www 和非 www 变体。
  • 在没有先安装 SSL 证书的情况下尝试将网站切换到 HTTPS。
  • 站点安装了自签名 SSL 证书,但浏览器无法识别它的有效性或安全性。
  • 防病毒软件阻止了 SSL 连接。
  • 浏览器扩展程序正在干扰网站的 SSL 连接。
  • 代理设置配置错误。
  • 浏览器缓存或 SSL 状态已损坏。

如上所见,许多不同的因素都可能导致 NET::ERR_CERT_COMMON_NAME_INVALID 错误。 这可能会使确定正确的解决方案变得困难,但一点耐心将有助于我们解决问题。

NET::ERR_CERT_COMMON_NAME_INVALID 错误的不同展示

我们将很快深入研究 NET::ERR_CERT_COMMON_NAME_INVALID 错误的解决方案。 但是,首先,需要能够在浏览器中识别它。

下面是这个问题在网络上最流行的客户端中的样子。

谷歌浏览器

与许多其他与 HTTPS 相关的错误一样,谷歌浏览器通过显示“Your connection is not private”警告来表明存在常见的名称不匹配:

谷歌浏览器中的NET--ERR_CERT_COMMON_NAME_INVALID错误

我们可以看到主要消息下方列出的特定问题 (NET::ERR_CERT_COMMON_NAME_INVALID)。 看到此屏幕的用户可以选择使用 HTTP 继续访问站点。

但是此消息有可能吓跑许多潜在的访客。

火狐浏览器

Firefox 提供了一个稍微不同的常见名称不匹配错误的展示样式。 在“Your connection is not private”标题下,它会告诉我们尝试访问的网站配置不正确,并建议我们不要访问它。

可能还会看到一条消息,内容为“警告:前方潜在的安全风险”:

火狐浏览器安全警告

它也可能在下面显示更具体的错误消息,指出安全证书无效并且仅配置为使用列出的域名。

还会看到“SSL_ERROR_BAD_CERT_DOMAIN”代码。

Safari

在 Safari 中,相应的错误消息显示为“Safari 无法验证网站的身份”或“Safari 无法打开页面”,然后是尝试访问的域。

它还可能声明站点的 SSL 证书无效或无法建立安全连接:

safari 中的错误

与其他浏览器相比,Safari 的常见名称不匹配错误消息有些含糊。

如果看到此错误窗口,则其背后可能还有其他与 SSL 相关的问题,因此请务必寻求各种解决方案。

IE 浏览器

Internet Explorer 切入正题,并通知我们“此站点不安全”。 并表示 SSL 证书的可信度存在问题。 此消息后可能会跟随一些不同的规范:

IE 浏览器 SSL 错误

其中一个表示问题相当于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 栏中的“不安全”警告。 在打开的菜单中,选择 **Certificate (Invalid)**:

谷歌浏览器中的证书验证

这将打开一个小窗口,显示我们 SSL 证书的详细信息:

谷歌浏览器中验证网站的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 中证书检查器窗口的“详细信息”选项卡

向下滚动,直到找到标有扩展主题备用名称的部分。 在它下方,应该会看到证书保护的所有域的列表。

2. 检查错误配置的重定向

如果将站点从一个域重定向到另一个域,并且没有在第一个域上安装 SSL 证书,则可能会导致错误。 例如,许多 SSL 证书不会自动考虑网站的 www 和非 www 版本。

假设我们将 www.example.com 设置为重定向到 example.com。 如果在 example.com 上而不是在 www.example.com 上安装 SSL 证书,那么可能会看到 NET::ERR_CERT_COMMON_NAME_INVALID 错误。

如果不确定我们的网站是否以这种方式重定向访问者,可以使用重定向映射器进行检查:

重定向映射器工具

此工具仅检查我们网站的 HTTP 和 HTTPS 版本之间的重定向以及 www 和非 www 版本之间的重定向。

如果我们发现重定向干扰了 SSL 证书,我们可以尝试几种解决方案。 一种是将证书上的通用名称更改为正确版本的域。

还可以为我们正在重定向的域获取另一个证书或涵盖两个域的 SAN 证书。 对于通配符域,需要列出要加密的每个子域,而不是在它们之间重定向。

3. 确定您的站点是否使用自签名 SSL 证书

当通过 Let's Encrypt 或其他信誉良好的来源获得 SSL 证书时,它是由公认的证书颁发机构 (CA) 签署的。 自签名证书不受 CA 支持,而是由用户创建。

自签名证书不如 CA 认可的证书安全。 一些用户发现它们很有吸引力,因为它们是免费的,但 Let's Encrypt 也免费提供授权的 SSL 证书。 除了为内部服务器目的或本地主机使用设置一个之外,真的没有理由使用自签名证书。

由于它们不提供授权证书所提供的全面保护,浏览器通常会将使用自签名证书的站点标记为“不安全”。 在某些情况下,这可能会导致 NET::ERR_CERT_COMMON_NAME_INVALID 错误。

我们可以使用在本文前面描述的第一种方法检查证书的 CA。 此数据将列在证书信息弹出窗口中:

谷歌浏览器中验证ssl证书是否CA

如果你认为站点使用自签名证书并且你也不是开发人员,那么最好的做法是联系为你开发站点的人员并要求他们将其删除。 这样,您可以用授权的替换它。

如果你有意安装了自签名证书,则可以使用浏览器对其进行身份验证以解决错误。 此过程因浏览器和操作系统而异,通常比简单地安装 Let's Encrypt 证书更困难。

4. 清除SSL状态和浏览器缓存

如果在证书配置中一切看起来都正确,但我们仍然看到 NET::ERR_CERT_COMMON_NAME_INVALID 错误,泽可能需要清除 SSL 状态。 浏览器可能会缓存 SSL 证书以加快加载时间。 如果刚刚安装了新证书,即使一切正常,那么仍可能会看到错误消息。

同样,此过程因不同的浏览器和操作系统而异。 我们将在此示例中关注 Chrome,但会展示如何在 Windows 和 macOS 上清除 SSL 状态。

对于 Windows,打开开始菜单并输入 Internet Options。 选择出现的相同选项,然后转到 Internet 选项窗口中的 Content 选项卡。 现在单击 Clear SSL Slate 按钮:

windows中清除ssl状态

在 macOS 上,需要使用钥匙串管理器来清除 SSL 状态。 可以在 Chrome 中通过转到设置 > 隐私和安全 > 管理证书 来访问它:

在 macOS 上的 Chrome 中打开管理证书设置

查找尝试访问的域列出的证书。 右键单击它并选择删除:

使用 macOS 钥匙串管理器删除证书数据

系统可能会提示提供用户密码。

在这里删除证书应该会清除 SSL 状态并能解决 NET::ERR_CERT_COMMON_NAME_INVALID错误(如果是这个原因)。

清除浏览器缓存也是明智之举。 在 Chrome 中,这就像打开设置菜单并选择 More Tools > Clear Browsing Data

清除浏览数据

还可以导航到 Privacy and security settings 指定要清除的数据。 只需确保从选项列表中选择缓存的图像和文件

5. 评估代理设置

代理服务器用于路由 Web 流量以保持客户端或源服务器的匿名性。 如果代理设置配置错误,则可能会限制 Web 访问并导致各种问题,包括 SSL 错误。

为了防止此类问题,我们需要重置代理设置。 此过程因我们使用的是 Windows 计算机还是 Mac 计算机而有所不同。

无论使用哪种操作系统,都可以通过谷歌浏览器访问代理设置,方法是依次打开 设置 > 高级 > 系统 > 打开您计算机的代理设置

通过 Google Chrome 打开代理设置

如果使用的是 Windows,将打开 Internet 属性窗口。 单击 Connections 选项卡,然后选择 LAN Settings 按钮并选择 Automatically detect settings

自动检测您的网络设置

在 macOS 上,这将打开系统的 Network settings 窗口。 单击 Proxies 选项卡并选择 Automatic Proxy Configuration:

为 macOS 开启自动代理配置

然后,我们可以尝试再次访问站点以查看错误是否已解决。

6. 浏览器扩展冲突

与 WordPress 插件一样,浏览器扩展并不总是能很好地相互配合。

一些此类冲突可能会干扰网站的 HTTPS 连接,从而导致各种错误。

要查看浏览器扩展程序是否可能导致 NET::ERR_CERT_COMMON_NAME_INVALID 错误,在隐身窗口中打开站点:

谷歌浏览器中的隐身窗口

这将减少我们安装的任何扩展的影响。 如果可以在隐身模式下正常访问网站,那么浏览器扩展程序可能是产生该错误的根源。

在这种情况下,最好的解决方案是一次禁用一个扩展,来确定导致错误的扩展是哪一个。 然后,可以删除罪魁祸首来永久解决问题。

7. 更改防病毒软件设置

同样,防病毒软件可能会阻止正确的 HTTPS 连接。 如果在计算机上运行此类程序,请检查其设置来查看是否禁用了 HTTPS 扫描。 如果是这样,需要启用它。

如果更改此设置并且问题没有消失,那可能需要考虑完全禁用该软件。 如果这修复了 NET::ERR_CERT_COMMON_NAME_INVALID 错误,那么我们可以联系防病毒程序的支持团队以获得进一步的帮助。

当然,我们不希望在很长一段时间内禁用防病毒软件,因为这会带来安全风险。 因此,最好在等待支持人员的响应时重新打开它,并按照他们的指导解决错误,同时保持计算机的安全。

8. 更新您的浏览器和操作系统 (OS)

尝试访问某些网站时,过时的操作系统可能会导致错误。 因此,确保运行的是最新版本的 Windows、macOS 或 Linux 是减少麻烦的必要措施。

我们还需要验证浏览器是否是最新的。 要在 Chrome 中执行此操作,请打开“设置”菜单,然后选择“帮助”>“关于 Google Chrome”:

打开谷歌浏览器的关于部分

我们可以在此处查看浏览器的版本并开启自动更新:

查看 Google Chrome 版本

如果 Chrome 不是最新版本,打开此屏幕应该会自动启动更新。

总结

当涉及到浏览器错误时,NET::ERR_CERT_COMMON_NAME_INVALID 是一个很难修复的问题。 但是,如果我们可以缩小导致问题的范围,则可以快速解决问题并保持网站在访问者中的可信度。

作为修复此错误的第一步,首先在浏览器中检查 SSL 证书并查找任何配置错误的重定向。 如果这些没有帮助,请开始查看我们在该文章中提到的所有其他方面。

除非注明转载,本站文章均为原创或翻译,欢迎转载,转载请以链接形式注明出处

本文地址:

迹忆客

专注技术分享,项目实战分享!

技术宅 乐于分享 7年编程经验
社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

热门文章

教程更新

热门标签