IIS8.5上的SSL – 使用指定的URL,但localhost导致ERR_CERT_COMMON_NAME_INVALID

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

在这里输入图像说明

我已经configuration我的网站的绑定使用https与此证书:

在这里输入图像说明

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

在这里输入图像说明在这里输入图像说明

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

我努力了:

  • 创build一个自签名证书并试图使用它,但是我不能在同一个网站上使用两个证书。 使用自签名的localhost禁用我通过foo.domain.com进行通信的能力

我还没有:

  • 试图通过mmc.exe certmgr.msc手动应用中间COMODO证书。 由于我目前的设置是对外工作,我不相信这是问题。
  • 修改主机文件redirect本地主机到foo.domain.com

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

没有自尊心的证书颁发机构会为“本地主机”颁发SSL证书,因为理论上有无数的“本地主机”无法真正validation自己的身份。

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

在我的情况下,我通过IP访问远程开发服务器,因为没有可以通过名称parsing的DNS服务器。 我不断收到你收到的错误。 在我的情况下,机器名称是类似于foo.bar.local的东西,其IP地址类似于10.1.1.37。 当我创build我的IIS自签名证书时,它将其发布到foo.bar.local。 所以为了做到这一点,我在foo.bar.local指向10.1.1.37的客户端主机文件(c:\ windows \ system32 \ drivers \ ets \ hosts)中添加了一个条目,并开始使用https://foo.bar.local而不是https://10.1.1.37 。 它从这一点开始工作。

当然,所有这一切都假定您已经将证书安装到客户端机器的受信任的根证书颁发机构中。

希望有所帮助!