IIS7:如何将SSL证书绑定到Https主机头?

时间:2010-07-30 08:08:35

标签: iis-7

我有以下网络农场:


1. http: mydomain1.com port: 80
2. http: mydomain2.com port: 80
3. https: port: 443 SSL Certificate: myCertificate

在II7中选择https绑定时,将禁用主机名。 我使用appcmd将主机名“admin.mydomain2.com”绑定到 网站。


appcmd set site /site.name:"admin" /+bindings.[protocol='https',bindingInformation='*:443:admin.mydomain2.com']

新项目已添加到绑定中。


3. a. https: port: 443 SSL Certificate: myCertificate
   b. https: admin.mydomain2.com port:443 SSL Certificate: None

例如,如果我想删除第一个项目(a),是否可以将证书分配给第二个绑定(b)?

3 个答案:

答案 0 :(得分:3)

链接作为答案不是最好的方法,因为这些链接通常都很冷。以下是上述答案的摘要,以及其他地方的支持信息。

说到SSL,主机标题真的被冷落了。 SSL的目的是加密流量,部分流量是浏览器发送给服务器的HTTP头。其中一个标题是" Host" IIS用于确定要使用请求加载哪个站点的标头。由于在发送请求标头之前需要加载证书以建立安全连接,因此IIS必须仅根据IP地址和端口号选择证书,从而使主机标头无效。但是,这并不能减轻我们必须遵守与IIS站点配置相关的STIG v6724的责任。因此,Microsoft不会允许您输入信息,即使它没用,Microsoft也会试图通过不允许您输入信息来取悦您。然而,有一种解决方法。

请注意,此答案假定您的证书已生成,已添加到证书存储区并添加到IIS。它还假设您不希望除SSL之外的任何其他绑定到您的网站。

首先,我们需要收集一些信息。我们需要哈希,应用程序ID和主机名。

  1. 打开IIS,选择您的服务器,然后双击"服务器证书"在底部。 注意"发布到"地址。这是我们的主机名。保存这个。
  2. 选择您的网站
  3. 使用http协议将您的站点绑定到端口80
  4. 删除所有其他绑定
  5. 使用https协议
  6. 将您的站点绑定到端口443
  7. 打开命令提示符

    netsh http show sslcert
    
  8. 保存证书哈希和应用程序ID

  9. 删除您网站上的https绑定
  10. 在命令提示符下:

    netsh http add sslcert ipport=0.0.0.0:443 certstorename=my certhash=<put Certificate Hash here> appid={<put Application ID here>}
    
    appcmd set site /site.name:"<put site name here>" /+bindings.[protocol='https',bindingInformation='*:443:<put host name here>']
    
  11. 注意:可以在c:\ windows \ system32 \ insetsrv中找到Appcmd.exe。您可能需要位于该文件夹中才能使此命令生效。

    1. 从您的网站删除http绑定
    2. 注意:如果您希望将您的网站自动重定向到https,则可以保留http绑定,但这是另一个主题。

答案 1 :(得分:0)

REM Solution to bind https for "Default Web Site" on IIS 7

cmd /c

pushd %systemroot%\System32\inetsrv

set sitename=Default Web Site

appcmd set site /site.name:"%sitename%" /+bindings.[protocol='https',bindingInformation='*:443:']


REM To assign ssl certificate to "Default Web Site" on IIS7
REM Go to inetmgr assign ssl certificate manually to the "Default Web Site" in Edit Bindings
REM Go to DOS command prompt use command (netsh http show sslcert) and get the Certificate Hash (certhash) and Application ID (appid) information
REM Execute the netsh command

netsh http add sslcert ipport=0.0.0.0:443 certhash=******** appid={********}

答案 2 :(得分:-1)

此博文可能会对您有所帮助。它让我明确了在IIS中定义了主机头并为其分配了正确的SSL证书,并且如果我们将127.0.0.1指向hosts文件中的站点地址,它在本地工作正常,它只是在放置时超时在生产中。希望它会让你更进一步:

http://www.awesomeideas.net/post/How-to-configure-SSL-on-IIS7-under-Windows-2008-Server-Core.aspx

删除所有绑定,使用命令行分配SSL证书,然后通过命令行添加带有主机头的SSL绑定。