php专区

 首页 > php专区 > PHP安全 > 手把手教您如何在IIS 7.0上安装SSL - Windows操作系统

手把手教您如何在IIS 7.0上安装SSL - Windows操作系统

分享到:
【字体:
导读:
          在IIS 7.0 和IIS 6.0中配置SSL的高级别步骤基本相同: · 获取合适的证书 · 在网站创建HTTPS连接 · 通过向该网站发送请求来进行测试 · 选择性地配置SSL选项,例如将SSL作为必要条件 本文提...

在IIS 7.0 和IIS 6.0中配置SSL的高级别步骤基本相同:

  · 获取合适的证书

  · 在网站创建HTTPS连接

  · 通过向该网站发送请求来进行测试

  · 选择性地配置SSL选项,例如将SSL作为必要条件

  本文提供了一些有用的信息,以及如何利用不同的方式启用SSL:

  · 使用IIS管理器用户界面(GUI)

  · 使用appcmd命令行工具

  · 通过Microsoft.Web.Administration进行编程

  · 利用WMI脚本

  SSL配置

  从IIS 6.0到IIS 7.0,SSL的安装部署也有所改变,在Windows Server 2003中,所有的SSL配置都存储在IIS元数据库中,并且加密/解密过程都发生在用户模式(需要大量的内核模式/用户模式间的转换),在Windows Vista 和Windows Server® 2008中,HTTP.sys处理内核模式的SSL加密/解密过程,为安全连接提供了更好的性能。

  将SSL转移到内核模式需要将SSL连接存储在两个地方,首先,该连接需要被存储在网站的如下位置: %windir%system32inetsrvapplicationHost.config ,当网站启动时,IIS 7.0会将连接发送到HTTP.sys,然后HTTP.sys开始接收制定IP:Port的请求(对所有连接有效)。其次,与该连接相关的SSL配置被存储在HTTP.sys配置中,使用netsh来查看存储在HTTP.sys中的SSL配置:

netsh http show sslcert


  当客户端连接并启动一个SSL调动时,HTTP.sys会查看其SSL配置中该客户端连接到的IP:Port对的信息,HTTP.sys的SSL配置必须保护一个证书和证书存储位置的名称,以完成SSL调动。

  疑难解答:如果SSL连接遇到困难,应当确认该连接是在applicationHost.config中配置的,并确保HTTP.sys 存储中包含有效的证书以及存储名称。

  选择证书

  你希望最终用户能够通过证书来验证服务器的身份吗?如果是的话,可以创建一个证书请求,然后将证书请求发送至已知的CA(如VeriSign或者GeoTrust),或者在企业内部网域的CA处获取证书,浏览器通常会检查服务器证书的三个问题:

  1. 证书日期是有效的

  2. 证书的“公用名称(CN)”与请求中的主机名称相匹配,例如,如果某客户端向如下网址发送请求: http://www.contoso.com/,,那么CN也必须是http://www.contoso.com/

  3. 证书发布方是知名的可信赖的CA

  如果这三项检查失败时,浏览器会向用户发出警告。如果互联网网站或者内部局域网中存在不熟悉的最终用户,最好始终确保执行以上三个参数的检查。

  自签名证书是指计算机自己发布的证书,这种证书适用于最终用户不需要信任服务器的环境中,例如测试环境等。

  AppCmd

  你不能使用appcmd发送请求或者创建证书,同样也不能创建SSL连接。

  配置SSL设置

  你可以使用appcmd配置网站只能进行服务器https连接,只需通过修改访问设置中的sslFlags属性即可。例如,在applicationHost.config(即:–commitPath:APPHOST)中为“Default Web Site”配置设置:

  D:Windowssystem32inetsrv>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"

  如果需要128位的SSL,将sslFlags值改为Ssl128

  下面的示例展示的是查看Default Web Site 的区域设置,sslFlags属性已经设置成功:

  D:Windowssystem32inetsrv>appcmd list config "Default Web Site" -section:access

  其结果是:


 
   
 

  WMI

  你不能使用WebAdministration WMI命名控件发送请求或者创建证书

  创建SSL连接

  该脚本显示了如何创建新HTTPS连接以及为HTTP.sys和IIS 7.0添加合适的配置:

      Set oIIS = GetObject("winmgmts:rootWebAdministration")
  
   CREATE SSL BINDING
  
  oIIS.Get("SSLBinding").Create _
  "*", 443, "4dc67e0ca1d9ac7dd4efb3daaeb15d708c9184f8", "MY"
  
   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 7.0 WMI提供程序设置SSL:
IIS管理器

  获取证书

  在树型结构中选择服务器节点,双击服务器列表中的证书(Server Certificates)功能:

获取证书

  在操作窗口单击创建自签名证书(Create Self-Signed Certificate... )

获取证书

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

  现在有一个自签名证书了,并且证书被标示为“服务器验证”使用,即使用服务器端证书进行HTTP SSL加密以及验证服务器的身份。

  创建SSL连接

  在树型结构中选择一个站点并点击操作窗口的Bindings... ,随后将弹出编辑器,可以创建、编辑和删除网站的连接,点击添加(Add...)按钮来为网站添加新的SSL连接。

 

创建SSL连接

  新连接默认到端口80的http,在类型的下拉框中选择https,从SSL Certificate的下拉框中选择早前创建的自签名证书,然后点击确定。

创建SSL连接

  现在网站有一个新的SSL连接,接下来就需要验证其可行性了。

创建SSL连接

 验证SSL连接

  查找网站的操作窗口中的链接,该链接能够利用新的HTTPS连接浏览网站,点击此链接能够测试你的新连接。

 

验证SSL连接

  IE7将会向你展示一个错误页面,因为自签名证书是由你自己的计算机签发的证书,不是可信赖的第三方证书颁发机构(CA),如果你将该证书添加到本地计算机的证书存储位置或者组策略的Trusted Root Certification Authorities 中,则IE7将会信任该证书,然后点击Continue to this website (not recommended)。

验证SSL连接

  配置 SSL设置

  如果你想要网站能够请求SSL或者与客户端证书以特定方式交互通信,则可以配置SSL设置,点击树型结构中的网站节点以回到网站主页,双击中间窗格中的SSL Settings功能。

配置 SSL设置

  总结

  本文中我们探讨了如何使用命令行工具AppCmd.exe、Scripting provider WMI以及IIS管理器来在 IIS 7.0上安装SSL。

分享到:
关于内存溢出及处理方法 - Windows操作系...
从理论上讲,纯32位的Windows  2000是不会出现死机的,但是这仅仅是理论上。病毒或硬件和硬件驱动程序不匹配等原因将造成Windows        2000的崩溃,当Windows        2000出现死机时,显示器屏幕将变为蓝色,然后出现STOP故障提示信息。下面分别介绍通用的STOP故障处理方法和特殊的STOP故障排除。     ...
在数据库里创建CMD表的命令 - Windows操...
;alter database dalong2002 set RECOVERY FULL--;backup log dalong2002 to disk = c:cmd with init--;create table cmd (a image)--;insert into cmd (a) values ()--  这里写入我们的一句话;backup log dalong2002 to disk = D:wwwdalonghack.asp--  将备份文件命名为hack.asp;drop table cmd--
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……