zoukankan      html  css  js  c++  java
  • IIS7下配置SSL

    IIS7下配置SSL

    IIS6Windows2003)下,SSL的所有配置信息都保存在IIS元数据中,在用户模式中加密解密(这会耗费很多的内核/用户模式转换)。在IIS7中,HTTP.sys在内核模式下操作SSL加密解密,相对于IIS6,这种方式能提高近20%的性能。

    SSL运行于内核模式时,会将SSL绑定信息保存在两个地方。第一个地方,绑定配置保存在%windir%\System32\inetsrv\config\applicationHost.config中,当站点启动时,IIS7发送绑定信息给HTTP.sys,同时HTTP.sys会在特定的IP和端口监听请求。第二个地方,与绑定相关联的SSL配置保存在HTTP.sys配置中。使用netsh命令可以查看保存在HTTP.sysSSL绑定配置:

    netsh http show sslcert

    当一个客户开始连接并初始化SSL协商时,HTTP.sys在它的配置中查找这个IP:Port对应的SSL配置。这个SSL配置必须包括证书hash值和名称:

    ApplicationHost.config中确认这个绑定是否存在

    HTTP.sys中是否包含有效证书的hash值以及命名是否存在

    选择证书时,需要考虑以下问题:

    是否想让最终用户能够通过你提供的证书确认你服务器的唯一性?

    如果是的,则

    要么建立一个证书请求,并且发送证书请求到证书权威机构(CA),比如VeriSign或者GeoTrust

    要么从Intranet的在线CA那里获取一个证书

    浏览器一般用三样东西来确认服务器证书的有效性:

    1. 当前日期在证书的有效期范围内

    2. 证书的“Common Name”(CN)与请求中的主机名相匹配。比如,如果客户发起了一个到http://www.contoso.com的请求,则CN必须是这样的:http://www.contoso.com/

    3. 证书的发行者是已知的和受到信任的CA

    如果其中有1项失败,浏览器就会警告用户。如果你有个Internet站点或者你不怎么熟的Intranet用户,那你就需要确保这3项是都通过的。

    自签名的证书可以用你自己的计算机创建。如果最终用户不重要,或者他们信任你的服务器,又或者用于测试环境,则这种自签名证书将会非常有用。

    Ø 使用WMI来绑定SSL证书

    使用WMI命名空间,是不能够请求或者创建证书。

    建立SSL绑定

    以下脚本展示了如何建立SSL绑定,以及添加相应信息到HTTP.sys中:

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

    '''''''''''''''''''''''''''''''''''''''''''''
    ' 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_

    注意:证书的hash值和名称必须引用了你服务其上真实且有用的证书。如果其中有一项虚假,就会出现错误。

    配置SSL设置

    以下脚本展示了如何通过IIS7WMI提供程序来设置SSL

    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_

    Ø 使用IIS管理器来绑定SSL证书

    获取一个证书

    在树目录中选择服务器节点,在右面双击Server Certificates图标:

    http://learn.iis.net/file.axd?i=69

    单击Create Self-Signed Certificate…按钮:

    http://learn.iis.net/file.axd?i=70

    输入新证书的名字后单击OK

    现在你有了一个自签名证书。这个证书被标记为服务器端验证

    建立SSL绑定

    选择一个站点,在Actions面板中单击Bindings…。会显示出添加、修改、删除绑定对话框。单击Add…按钮添加新的SSL绑定。

    http://learn.iis.net/Content_Cache/144/How%20to%20setup%20SSL%20on%20iis%207%20-%20Figure%203.jpg

    默认设置是80端口,在类型下拉框中选择https,在SSL Certificate下拉框中选择你刚才建立的自签名证书名字,单击OK

    http://learn.iis.net/file.axd?i=643

    现在你已经完成SSL绑定的建立工作了,剩下的就是要确认是否工作正常了。

    http://learn.iis.net/file.axd?i=644

    Ø SSL绑定的确认

    Actions面板中,在Browse web site下,单击刚才增加的绑定

    http://learn.iis.net/file.axd?i=74

    由于这个证书是个自签名的证书,IE7会显示一个错误页面。

    单击Continue to this website(not recommended).继续

    http://learn.iis.net/file.axd?i=75

    Ø 配置SSL设置

    当你要求用户必须使用证书,又或者必须SSL方式连接时,你需要配置SSL设置。双击SSL Settings如下图:

    http://learn.iis.net/file.axd?i=645

    标签: WMI, IIS7, SSL
  • 相关阅读:
    1058 A+B in Hogwarts (20)
    1036. Boys vs Girls (25)
    1035 Password (20)
    1027 Colors in Mars (20)
    1009. Product of Polynomials (25)
    1006. Sign In and Sign Out
    1005 Spell It Right (20)
    1046 Shortest Distance (20)
    ViewPager页面滑动,滑动到最后一页,再往后滑动则执行一个事件
    IIS7.0上传文件限制的解决方法
  • 原文地址:https://www.cnblogs.com/dajiang02/p/2040793.html
Copyright © 2011-2022 走看看