IIS7下配置SSL的方法分析

在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图标:

单击Create Self-Signed Certificate…按钮:

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

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

建立SSL绑定

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

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

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

Ø SSL绑定的确认

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

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

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

Ø 配置SSL设置

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

if ($ != jQuery) {
$ = jQuery.noConflict();
}
var isLogined = false;
var cb_blogId = 56881;
var cb_entryId = 2039529;
var cb_blogApp = "aarond";
var cb_blogUserGuid = "20b617f1-f44b-de11-9510-001cf0cd104b";
var cb_entryCreatedDate = '2011/5/7 0:12:00';

(0)

相关推荐

  • IIS7.0 Windows Server 2008 R2 下配置证书服务器和HTTPS方式访问网站的教程图文详解

    配置环境 Windows版本:Windows Server 2008 R2 Enterprise Service Pack 1 系统类型: 64 位操作系统 了解HTTPS 为什么需要 HTTPS ? 在我们浏览网站时,多数网站的URL都是以HTTP开头,HTTP协议我们比较熟悉,信息通过明文传输; 使用HTTP协议有它的优点,它与服务器间传输数据更快速准确; 但是HTTP明显是不安全的,我们也可以注意到,当我们在使用邮件或者是在线支付时,都是使用HTTPS; HTTPS传输数据需要使用证书并对

  • 解决iis7.5服务器上.net 获取不到https页面的信息

    我的获取页面需要cookie,不需要的可以去掉: GET的方法: 复制代码 代码如下: /// <summary>        /// 获取URL访问的HTML内容 获取https 页面的        /// </summary>        /// <param name="Url">URL地址</param>        /// <returns>HTML内容</returns>        publ

  • IIS 7中如何实现http重定向https

    在不少的企业当中,网站设计出于安全的考虑使用了https协议,但同时公司也开放了80协议,不少用户因为输入网址的习惯不喜欢带上https协议,导致访问异常.最近一个客户也要求我帮助解决这个问题,客户的邮件服务器exchange 2010采用https,客户端部署有outlook anywhere,客户现在要求用户访问http://mail.abc.com能够自动跳转到https://mail.abc.com/owa.具体操作如下: 第一步:从微软的官方网站下载HTTP重写模块2.0(这里以64位

  • win2000服务器在IIS中使用SSL配置HTTPS网站

    由于Windows系统的普及,很多中小企业在自己的网站和内部办公管理系统都是用默认的IIS来做WEB服务器使用. 默认情况下我们所使用的HTTP协议是没有任何加密措施的,所有的消息全部都是以明文形式在网络上传送的,恶意的攻击者可以通过安装监听程序来获得我们和服务器之间的通讯内容.这点危害在一些企业内部网络中尤其比较大,对于使用HUB的企业内网来说简直就是没有任何安全可讲因为任何人都可以在一台电脑上看到其他人在网络中的活动,对于使用交换机来组网的网络来说虽然安全威胁性要小很多,但很多时候还是会有安

  • win2003架设证书服务器及让IIS6启用HTTPS服务

    现在到处是劫持网址加广告的,这样通过https访问,就不用担心了,比较适合对安全级别要求高的网站,当然老站更需要开启https了. 无废话图文教程,教你一步一步搭建CA服务器,以及让IIS启用HTTPS服务. 一.架设证书服务器(CA服务) 1.在系统控制面板中,找到"添加/删除程序",点击左侧的"添加/删除windows组件",在列表中找到"证书服务",安装之. 2.CA类型,这里有四种选择,这里以"独立根CA"为介绍. 3

  • startssl申请SSL证书 并且配置 iis 启用https协议

    先在 startssl.com 这个站点上申请一个免费的1年的 ssl证书 申请步骤比较简单, 你要先验证一个使用这个证书的域名, 会把验证码发送到域名注册邮箱里. 接下来是输入完整域名来验证SSL 证书, 我填写的是一个二级域名 然后就填写证书签名, Certificate Signing Request 然后可以下载一个 startcomtool.exe 这个工具 点击generate CSR 然后将右侧的信息复制粘贴到 StartCom申请站点里,就完成了证书的申请,然后进入下载页面选择你

  • World Wide Web Publishing 服务尝试删除 IIS 所有的 SSL 配置数据失败的几种方法

    World Wide Web Publishing 服务尝试删除 IIS 所有的 SSL 配置数据失败的几种方法总结了以下几个办法1:在Internet信息服务下有本地计算机(计算机机名),单击名键,选择断开,提示确实要断开本地计算机(计算机机名)吗?选择确定.  右键单击Internet,选择连接,计算机名填本机名称,用户名填本机管理员帐号(Administrator),确定.  World Wide Web Publishing 服务尝试删除 IIS 所有的 SSL 配置数据失败的几种方法2

  • 在IIS6上开启https服务方法分享

    前两天因为需要修正一个Windows Live Contacts Gadget在https连接下无法工作的错误,在dev machine的IIS上设置了一下SSL功能. 大家都知道要开启SSL服务关键需要两个东西: 1. A Certificate Authority (such VeriSign.com) 2. A site certificate 如果你使用的是Windows Server 2003或者XP Advanced Server,你其实可以利用系统提供的 "Certificate

  • win2003 IIS 6.0实现全站https访问的配置方法

    全站通过https访问前,请先确认网站各页面能正常通过https访问,若网站中不安全元素没有解决(即网站中仍存在外部的图片.js.css等链接),则强制全站https访问后会造成部分页面显示异常. 具体实现办法: 1.打开IIS管理器,找到需要配置SSL证书的站点,右键属性. 2.选择"目录安全性",在"安全通信"区域点击"编辑". 3.勾选"要求安全通道(SSl)",确定完成. 4.修改IIS403文件. 路径:C:\WIN

  • IIS7/IIS7.5 URL 重写 HTTP 重定向到 HTTPS的方法

    1.有SSL证书,或者新购.目前很多免费的SSL证书 2.IIS7 / IIS 7.5 下绑定 HTTPS 网站 3.下载安装URL重写模块:Microsoft URL Rewrite Module 32位:http://download.microsoft.com/download/4/9/C/49CD28DB-4AA6-4A51-9437-AA001221F606/rewrite_x86_zh-CN.msi 64位:http://download.microsoft.com/download

  • 有了SSL证书,如何在IIS环境下部署https

    昨天各位小伙伴都很开心的领取了自己的SSL证书,但是大部分小伙伴却不知道如何部署,也许是因为第一次接触SSL这种高端的东西吧,不过个人觉得就是懒懒懒...本来小编也挺懒的,但是答应了各位小伙伴的,那么今天就教大家如何在IIS环境下部署HTTPS证书吧.(建议在PC端阅读) 1.首先我们要取走我们的证书,保存在我们本地的电脑里,然后复制到服务器即可. 2.取走后接下来干嘛?当然是打开文件看看里面有些什么啊.我们找到IIS那个压缩包并解压. 3.解析得到pfx文件,也就是我们需要部署域名的证书文件.

随机推荐