IIS7下配置SSL的方法分析

 更新时间:2016年1月27日 20:16  点击:2375
在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.sys的SSL绑定配置:
netsh http show sslcert
当一个客户开始连接并初始化SSL协商时,HTTP.sys在它的配置中查找这个IP:Port对应的SSL配置。这个SSL配置必须包括证书hash值和名称:
l 在ApplicationHost.config中确认这个绑定是否存在
l 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值和名称必须引用了你服务其上真实且有用的证书。如果其中有一项虚假,就会出现错误。
注意:证书的hash值和名称必须引用了你服务其上真实且有用的证书。如果其中有一项虚假,就会出现错误。


配置SSL设置
以下脚本展示了如何通过IIS7的WMI提供程序来设置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绑定。

/upload/201105/20110507004819416.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

[!--infotagslink--]

相关文章

  • win7和win2008 r2下配置IIS7(ASP.net运行环境)

    这篇文章主要介绍了win7和win2008 r2下配置IIS7(ASP.net运行环境) ,需要的朋友可以参考下...2016-01-27
  • win2008之IIS7中FTP设置技巧

    如果要允许用户在站点中上载或下载文件,就需要在 Web 服务器上设置 FTP。无论站点是位于 Intranet 还是位于 Internet 上,使用 FTP 在所提供的位置中上载和下载文件的原理是相同的。...2016-01-27
  • 详解nginx实现ssl反向代理实战

    本篇文章主要介绍了nginx实现ssl反向代理实战,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...2017-01-22
  • IIS7下配置SSL的方法分析

    IIS6(Windows2003)下,SSL的所有配置信息都保存在IIS元数据中,在用户模式中加密解密(这会耗费很多的内核用户模式转换)。...2016-01-27
  • 使用ASP.NET操作IIS7中应用程序

    IIS7的操作和IIS5/6有很大的不同,在IIS7里增加了 Microsoft.Web.Administration 命名空间里,增加了ServerManager、Site几个大类来操作IIS7。本文主要介绍.NET对IIS7的操作。...2021-09-22
  • 在Nginx服务器中启用SSL的配置方法

    这篇文章主要介绍了在Ningx服务器中启用SSL的配置方法,本文前提是已经在Linux系统下安装好了OpenSSL,需要的朋友可以参考下...2016-01-27
  • IIS7的应用程序池详细解析

    在 IIS 7 中,应用程序池有两种运行模式:集成模式和经典模式。应用程序池模式会影响服务器处理托管代码请求的方式...2021-09-22
  • IIS7,IIS7.5 升级PHP5.3后站点变慢的解决方法

    大多数PHP页面实际上都是数据库驱动的,要连接数据库才能显示出来,而响应时间过长的原因便在于PHP 5.3连接数据库的方式有所改变,这里简单给大家分享下, 方便需要的朋友...2016-01-27
  • win2008 IIS7无后缀URL部署问题 MVC4 MVC URL映射

    这篇文章主要介绍了win2008 IIS7无后缀URL部署问题 MVC4 MVC URL映射,需要的朋友可以参考下...2016-01-27
  • MySQL 使用 SSL 连接配置详解

    本文给大家分享的是如何配置MySQL支持SSL连接方式的方法以及在docker中配置的具体案例,有需要的小伙伴可以参考下...2017-01-09
  • 在Nginx服务器中使用LibreSSL的教程

    这篇文章主要介绍了在Nginx服务器中使用LibreSSL的教程,LibreSSL是SSL的一个人气软件库,需要的朋友可以参考下...2016-01-27
  • iis 7下安装laravel 5.4环境的方法教程

    最近想尝试体验下laravel框架,所以自己尝试在iis 7下安装laravel 5.4环境,虽然遇到些问题,但最终都解决了,所以下面这篇文章主要给大家介绍了在iis 7下安装laravel 5.4环境的方法教程,需要的朋友可以参考下。...2017-06-20
  • 让IIS7支持播放、下载rmvb文件的方法

    这篇文章主要介绍了让IIS7支持播放、下载rmvb文件的方法,简单来说只要添加一个MIME类型即可,需要的朋友可以参考下...2016-01-27
  • nginx环境下配置ssl加密(单双向认证、部分https)

    这篇文章主要介绍了nginx环境下配置ssl加密(单双向认证、部分https),具有一定的参考价值,感兴趣的小伙伴们可以参考一下。...2016-11-22
  • Win7下在IIS7中配置PHP的FastCGI支持_笔记

    听说现在要在IIS7下跑PHP不再用ISAPI了,现在都FastCGI了,听说FastCGI比ISAPI好,之前我在Vista下还是用ISAPI配成的PHP环境,这回换7了,在多方考查下,终于也实现了FastCGI,现把过程记录如下。...2016-01-27
  • IIS7 常见错误及其解决方法

    IIS7 常见错误及其解决方法 ,需要的朋友可以参考下。...2016-01-27
  • 多种不同的 MySQL 的 SSL 配置

    MySQL 只支持 TLS v1.0,默认不支持主机名验证,所以你的证书可能是给db1.example.com的,也可能是给db2.example的,浏览器则可能会用OCSP、CRL's 或 CRLsets 来验证证书是否有效。 MySQL 5.6以后就只支持CRL验证。...2016-04-28
  • asp.net iis7默认文档错误异常的解决方法

    当修改默认文档时IIS提示异常信息,错误原因是IIS中已经设置了默认文档为default.aspx,这个时候就出现的冲突,引发的异常...2016-01-27
  • 配置IIS7显示详细错误信息

    如果你在 IIS 7 中只看到诸如 HTTP Error 500 - Internal Server Error (500 - 内部服务器错误) 的简单错误信息,那么可以通过如下步骤配置 IIS7 以输出详细错误信息。...2016-01-27
  • IIS7传大于30M的视频时出现找不到文件或目录错误正确处理方法

    IIS7传大于30M的视频时出现找不到文件或目录错误的情况想必有很多的朋友都有遇到过吧,下面与大家分享下具体的解决方法...2016-01-27