IIS8.5 上的 SSL - 使用命名 URL,但 localhost 导致 ERR_CERT_COMMON_NAME_INVALID

IIS8.5 上的 SSL - 使用命名 URL,但 localhost 导致 ERR_CERT_COMMON_NAME_INVALID

我在 Win Server 2K12 R2 上运行 IIS8.5。我有一个注册到服务器名称的有效 SSL 证书foo.domain.com

在此处输入图片描述

我已将我的网站的绑定配置为使用带有以下证书的 https:

在此处输入图片描述

当我与 通话时,我可以成功与网站通话,但是当我使用或 时https://foo.domain.com,我无法成功通话:https://localhost.comhttps://127.0.0.1

在此处输入图片描述 在此处输入图片描述

我需要做什么才能通过本地主机成功通信?

我努力了:

  • 创建自签名证书并尝试使用它,但我不能对同一个网站使用两个证书。对 localhost 使用自签名证书会禁用我通过foo.domain.com

我没有:

  • 尝试通过 手动应用中级 COMODO 证书mmc.exe certmgr.msc。由于我当前的设置在外部运行,因此我认为这不是问题所在。
  • 修改 hosts 文件以将 localhost 重定向至foo.domain.com

答案1

您的 SSL 证书仅对收件人访问网站的确切 FQDN 有效。SSL 证书的主题和 URL 地址栏中的服务器 FQDN 必须匹配。例如,它是有效的仅有的foo.domain.com,不是foo,不是localhost,不是127.0.0.1。这是设计使然。这就是 SSL 证书的工作方式。

任何有自尊心的证书颁发机构都不会为“localhost”颁发 SSL 证书,因为理论上有无数个“localhost”,而无法真正验证其身份。

答案2

正如其他人所说,SSL 证书仅对使用的确切 FQDN 有效。当您在 IIS 中创建自签名证书时,它会为您提供一个“颁发给”名称。如果您使用此名称而不是“localhost”,则证书应该可以正常工作。例如,如果机器的名称是 foo.bar.com,那么您可以https://foo.bar.com在 URL 中使用 而不是https://localhost

就我而言,我通过 IP 访问远程开发服务器,因为没有 DNS 服务器可以通过名称解析它。我一直收到您收到的错误。就我而言,计算机名称类似于 foo.bar.local,IP 地址类似于 10.1.1.37。当我创建 IIS 自签名证书时,它将其颁发给 foo.bar.local。因此,为了使其正常工作,我在客户端计算机的 hosts 文件 (c:\windows\system32\drivers\ets\hosts) 中添加了一个条目,将 foo.bar.local 指向 10.1.1.37,并开始使用https://foo.bar.local而不是https://10.1.1.37。从那时起它就开始正常工作了。

当然,所有这些都假设您已经将证书安装到客户端机器的受信任的根认证机构中。

希望有帮助!

答案3

在绑定(IIS 10)中,您应该保留 IP 地址 = 全部未分配并检查所需的服务器名称指示。然后选择通配符证书。

相关内容