IIS7:无法使用 SSL 证书和端口 443 在网站上设置主机名

IIS7:无法使用 SSL 证书和端口 443 在网站上设置主机名

假设一台安装了 IIS7 的 Win 2008 SP2 计算机。任务是将证书和主机名应用于此计算机上的唯一站点。站点的主机标头需要abc.123.example.com

第一步是将 .pfx 安装到个人存储,此步骤成功。

IIS7 发现证书可用,但不允许输入主机名。主机名文本框始终处于禁用/灰色状态,甚至在选择我的证书之前也是如此。我甚至删除了默认端口 80 绑定。

站点绑定

问题:我如何为该网站设置主机名?这是因为该证书是通配符证书吗?我知道 SSL 请求进入 Web 服务器,并且数据包中的主机标头已加密。那么为什么 IIS6 允许指定主机标头,而 IIS7 不允许呢?

更新:证书不是问题的一部分。我在机器上创建了一个新站点,当选择 https 绑定时,主机名文本框被禁用。

答案1

您无法通过 UI 执行此操作,必须通过命令行执行此操作。以下是该过程的简要介绍:

http://www.sslshopper.com/article-ssl-host-headers-in-iis-7.html

答案2

它在 GUI 中确实有效......

只需确保您安装的证书的“友好名称”与您为该证书创建的多域名相同。

即 *.companydomain.com

如果您在 *.companydoman.com 证书中输入“友好名称”,则在将该证书安装到 IIS 中时,主机名标题框将变灰。

如果您使用 *.companyname.com 作为友好名称,那就太好了。

繁荣。

答案3

简而言之,每个 IP 只能绑定一个证书,因此无论指向该 IP 地址的主机名是什么,证书绑定都将适用。能够指定主机名意味着您可以在同一个 IP 地址和端口上拥有多个主机名和证书组合(就像非 SSL 条目一样),但事实并非如此,因此该字段不可用。

更完整的解释是 SSL 加密您的流量,而该流量的一部分是浏览器发送到服务器的 HTTP 标头。其中一个标头是“Host”标头,IIS 使用它来确定要使用请求加载哪个站点。由于需要在发送请求标头之前加载证书以建立安全连接,因此 IIS 必须仅根据 IP 地址和端口号选择证书,而将“Host”标头作为确定要加载哪个站点的因素,因此他们不允许您输入一个站点。

这篇文章概述了SSL 连接的内部工作原理更详细地讲。

答案4

这里接受的答案令人困惑,我认为它不适合这个问题。它不应该是接受的答案。

问题

您有一个通配符 SSL,例如,*.ipsum.com并且证书已安装,但是当您尝试添加 HTTPS 绑定时,您无法在 IIS 中为站点选择主机名,因为文本框显示为灰色。

解决方案

您的通配符 SSL 可以与任何子域一起使用,您只需要确保证书的友好名称以 开头*。我更喜欢使用与通配符域相同的友好名称,例如,*.ipsum.com但您可以将其命名为任何以星号开头的名称:*foo

我给我的证书起了错误的友好名称,救命!

从 Windows 8 或 Server 2012 开始,您可以certlm.msc在开始菜单中键入以管理本地计算机的证书。在以前版本的 Windows 上,您需要执行一些稍微复杂一些的操作:

  1. mmc.exe从开始运行
  2. 转到File菜单并选择Add/Remove Snap-in...或点击(Ctrl-M)
  3. 突出显示Certificates管理单元,Add >然后单击,在后续对话框中选择,然后单击Computer Account,关闭管理单元窗口Local ComputerFinishOK

在主窗口中,展开Certificates (Local Computer)然后您将能够右键单击证书,点击可以更新友好名称的位置PersonalCertificatesProperties

关闭并打开 IIS 管理器然后您可以设置您的主机名。

相关内容