如何在IIS 7上设置SSL

如何在IIS 7上设置SSL

介绍

IIS 7和更高版本以及IIS 6.0中,为站点配置安全套接字层(SSL)的步骤相同,包括以下步骤:

  • 获取适当的证书。
  • 在站点上创建HTTPS绑定。
  • 通过向站点提出请求进行测试。
  • (可选)配置SSL选项,即通过将SSL作为一项要求。

本文档提供有关SSL的一些基本信息,然后说明如何通过以下方式启用SSL

  • 使用IIS管理器。
  • 使用AppCmd.exe命令行工具。
  • 通过Microsoft.Web.Administration以编程方式进行。
  • 使用WMI脚本。

本文包含以下部分:

SSL配置

无论您是在自己的服务器上还是在云中运行网站,使用SSL来保护您的网站都对您来说非常重要,因为许多网站都在使用它来保护用户的隐私。如果需要在服务器上配置SSL,则必须意识到SSL的实现已从IIS 6.0更改为IIS 7及更高版本,这一点很重要。在Windows Server 2003IIS 6.0中,所有SSL配置都存储在IIS配置数据库中,并且加密/解密在用户模式下进行(需要大量内核/用户模式转换)。在IIS 7和更高版本中,HTTP.sys在内核模式下处理SSL加密/解密,与IIS 6.0相比,IIS 7和更高版本中的安全连接性能提高了20%。

在内核模式下使用SSL需要将SSL绑定信息存储在两个位置。首先,绑定存储在站点的%windir\ System32 \ inetsrv \ config \ applicationHost.config中。当站点启动时,IIS将绑定发送到HTTP.sys,然后HTTP.sys开始侦听指定IPPort上的请求(这适用于所有绑定)。其次,与绑定关联的SSL配置存储在HTTP.sys配置中。在命令提示符处使用netsh命令,以查看存储在HTTP.sys中的SSL绑定配置,如以下示例所示:

安慰复制

netsh http show sslcert

当客户端连接并启动SSL协商时,HTTP.sys在其SSL配置中查找客户端连接到的IPPort对。在SSL协商成功之前,HTTP.sys SSL配置必须包含证书哈希和证书存储的名称。

故障排除技巧:如果您在使用SSL绑定时遇到问题,请验证在ApplicationHost.config中配置了绑定,并且HTTP.sys存储区包含有效的证书哈希和该存储区的存储名称。

选择证书

选择证书时,请考虑以下事项:您是否希望最终用户能够使用证书来验证服务器的身份?如果是,则创建一个证书请求,然后将该请求发送到已知的证书颁发机构(CA),例如VeriSignGeoTrust,或者从您的Intranet域中的在线CA获取证书。浏览器通常在服务器证书中验证三件事:

  1. 当前日期和时间在证书的有效期自有效期至日期范围内。
  2. 证书的公用名CN)与请求中的主机头匹配。例如,如果客户端向发送请求https://www.contoso.com/,则CN必须为www.contoso.com
  3. 证书的颁发者是已知且受信任的CA

如果这些检查中的一项或多项失败,浏览器将向用户提示警告。如果您的最终用户不是您自己认识的人的Internet站点或Intranet站点,则应始终确保这三个参数有效。

自签名证书是在计算机上创建的证书。它们在最终用户不信任您的服务器的环境(例如测试环境)中很有用。

使用AppCmd

您不能使用AppCmd.exe请求或创建证书。您也不能使用AppCmd.exe创建SSL绑定。

配置SSL设置

您可以通过修改访问部分中的sslFlags属性,使用AppCmd.exe将站点配置为仅接受服务器HTTPS连接。例如,可以使用以下命令为ApplicationHost.config文件中的默认网站配置此设置(例如,commitPathAPPHOST):

安慰复制

%windir%\system32\inetsrv>AppCmd set config "Default Web Site" -commitPath:APPHOST -section:access -sslFlags:Ssl

如果成功,将显示以下消息:

安慰复制

Applied configuration changes to section "system.webServer/security/access" for "MACHINE/WEBROOT/APPHOST/Default Web Site" at configuration commit path "MACHINE/WEBROOT/APPHOST"

 注意

要要求使用128SSL,请将sslFlags值更改为Ssl128

下面的示例演示如何查看默认网站的<access />部分设置。该sslFlags属性已成功设置。

安慰复制

%windir%\system32\inetsrv>AppCmd list config "Default Web Site" -section:access

执行命令将在ApplicationHost.config文件中产生以下条目:

XML格式复制

<system.webServer>

  <security>

    <access flags="Script, Read" sslFlags="Ssl" />

  </security>

</system.webServer>

使用WMI

您不能使用WebAdministration WMI名称空间来请求或创建证书。

创建一个SSL绑定

以下脚本演示了如何创建新的SSL绑定以及如何为HTTP.sysIIS添加适当的配置:

安慰复制

Set oIIS = GetObject("winmgmts:root\WebAdministration")

VB复制

'''''''''''''''''''''''''''''''''''''''''''''

' CREATE SSL BINDING

'''''''''''''''''''''''''''''''''''''''''''''

 

oIIS.Get("SSLBinding").Create _

   "*", 443, "4dc67e0ca1d9ac7dd4efb3daaeb15d708c9184f8", "MY"

VB复制

'''''''''''''''''''''''''''''''''''''''''''''

' ADD SSL BINDING TO SITE

'''''''''''''''''''''''''''''''''''''''''''''

 

Set oBinding = oIIS.Get("BindingElement").SpawnInstance_

oBinding.BindingInformation = "*:443:"

oBinding.Protocol = "https"

 

Set oSite = oIIS.Get("Site.Name='Default Web Site'")

arrBindings = oSite.Bindings

 

ReDim Preserve arrBindings(UBound(arrBindings) + 1)

Set arrBindings(UBound(arrBindings)) = oBinding

 

oSite.Bindings = arrBindings

Set oPath = oSite.Put_

 注意

证书哈希和存储必须引用服务器上的真实功能证书。如果证书哈希和/或商店名称是伪造的,则返回错误。

配置SSL设置

以下脚本演示了如何通过使用IIS WMI提供程序来设置SSL设置。您可以在IIS_Schema.xml文件中找到此值。

复制

CONST SSL = 8 

Set oIIS = GetObject("winmgmts:root\WebAdministration") 

Set oSection = oIIS.Get(\_ 

 "AccessSection.Path='MACHINE/WEBROOT/APPHOST',Location='Default Web Site'") 

oSection.SslFlags = oSection.SslFlags OR SSL 

oSection.Put\_ <a id="IISManager"></a>

IIS管理器

取得证书

在树视图中选择服务器节点,然后在列表视图中双击“ 服务器证书功能:

单击“ 操作窗格中的“ 创建自签名证书... ” 

输入新证书的友好名称,然后单击“ 确定

现在,您拥有了一个自签名证书。该证书标记为服务器身份验证使用;也就是说,它用作HTTP SSL加密和身份验证服务器身份的服务器端证书。

创建一个SSL绑定

在树形视图中选择一个站点,然后在“ 操作窗格中单击“ 绑定... ” 。这将打开绑定编辑器,使您可以创建,编辑和删除网站的绑定。单击添加...,将新的SSL绑定添加到站点。

新绑定的默认设置在端口80上设置为HTTP。在“ 类型下拉列表中选择https。从SSL证书下拉列表中选择您在上一节中创建的自签名证书,然后单击确定

现在,您的站点上有了一个新的SSL绑定,剩下的就是验证它是否有效。

验证SSL绑定

操作窗格中的浏览网站下,单击与您刚创建的绑定关联的链接。

Internet ExplorerIE7及更高版本将显示错误页面,因为自签名证书是由您的计算机而不是受信任的证书颁发机构(CA)颁发的。如果将证书添加到本地计算机上或域的组策略中的证书中,则将IE 7及更高版本信任该证书。单击继续浏览此网站(不推荐)

配置SSL设置

如果您希望站点需要SSL或与客户端证书以特定方式进行交互,请配置SSL设置。单击树视图中的站点节点,以返回到站点的主页。双击中间窗格中的“ SSL设置功能。

摘要

在本演练中,我们成功使用了命令行工具AppCmd.exe,脚本提供程序WMIIIS管理器来在IIS上设置SSL

 

发布了886 篇原创文章 · 获赞 30 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/allway2/article/details/103888905
今日推荐