Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > VB.NET > 技巧和诀窍:在IIS 7.0上使用自签证书来启用SSL
【标  题】:技巧和诀窍:在IIS 7.0上使用自签证书来启用SSL
【关键字】:IIS,7.0,SSL
【来  源】:http://blog.joycode.com/scottgu/archive/2007/04/08/100653.aspx

技巧和诀窍:在IIS 7.0上使用自签证书来启用SSL

Your Ad Here

【原文地址】Tip/Trick: Enabling SSL on IIS 7.0 Using Self-Signed Certificates
【原文发表日期】 Friday, April 06, 2007 12:31 AM

SSL允许浏览器与web服务器在一个安全的通道上交换信息,以防范窃听,篡改和消息伪造。你应该总是在登录页面(用户在上面输入用户名和密码),以及网站上其他所有安全敏感的网页上使用SSL,譬如,那些显示财务或个人信息的帐号网页。

在Windows早期的IIS版本上配置SSL很痛苦,搞清楚如何安装和管理证书,然后如何将证书与一个网站相关联,我敢说是大多数web开发人员并不知道怎么做的事情。

好消息是,IIS 7.0使配置和启用SSL成为小菜一碟。IIS 7.0现在对创建“自签证书(Self Signed Certificates)”也有内置的支持,自签证书允许你轻松地创建测试或个人证书,然后你可以用之来为开发或测试目的对一个网站快速启用SSL。

使用IIS 7.0的话,你可以在30秒内对一个现有的网站完成启用SSL。下面的教程示范该怎么来做。

第一步:创建一个新网站

我们先使用新的IIS 7.0管理工具创建一个新的网站。这个管理工具是对以前IIS管理工具的完全重写的结果(是使用Windows Forms全部用托管代码写成的),提供了对web特性更逻辑的组织。它对所有的ASP.NET和IIS设置提供了一个GUI管理体验:

 

要在机器上创建一个新的网站,在左手的树形视图窗口里右击“网站(Web Sites)”节点,选择“添加网站(Add Web Site)”上下文菜单选项。输入适当的细节创建一个新的网站:

Windows Vista上IIS7的一个很棒的特性是,你现在可以在本机上拥有的网站数目不再受限制(早期Windows客户机上IIS版本只允许一个网站)。早期Windows客户机IIS版本的10个并发请求的限制在IIS 7.0上也不再存在。

我们完成上面的步骤后,在我们的IIS web服务器上就有一个崭新的网站在运行了。

第二步:创建一个新的自签证书

在把SSL规则绑定到我们的新网站之前,我们首先需要引入和建立一个安全证书来用于SSL绑定。

在IIS 7.0中,可以这么来管理证书,点击左手树形视图管理器里的根机器节点(root machine node),然后在右边的特性视窗里选择“服务器证书(Server Certificates)”图案:

这会列出在机器上注册了的所有证书,并允许你引入或者创建新的证书。

我也可以去象Verisign这样的证书机构购买一个证书,然后用这个管理界面来引入。或者,我也可以创建一个“自签证书”,这是个测试证书,我可以在开发期间用来测试我的网站。可以这么做,在管理工具的右手边点击“创建自签证书(Create Self-Signed Certificate)”链接:

给证书输入一个名字 (譬如:“test”),点击OK. 然后IIS7就会自动为你创建一个自签加密证书(self-signed crypto certificate),同时与机器注册该证书:

第三步: 为我们的网站启用HTTPS绑定

要给我们在前面创建的网站启用SSL,在左手边的树形视图窗口里选择网站节点,然后在屏幕右手边的“操作(actions)”视窗里点击“绑定(Bindings)”链接:

这会调出一个对话框,上面列出了将访问者(traffic)导向该网站的所有的绑定规则 (即,该网站的主机头(host-header)/IP地址/端口组合):

要给网站启用SSL,我们要点击“添加(Add)”按钮。这会调出一个“添加绑定(add binding)”对话框,我们可以用来添加HTTPS协议支持。我们可以从对话框上的SSL证书下拉框里选择我们先前创建的自签证书, 这么做表明在SSL上给内容加密时,我们要使用那个证书:

Click ok, and we now have SSL enabled for our site:点击OK,我们就给我们的网站启用了SSL:

第四步:对我们的网站做测试

给网站添加一个“default.aspx”网页,然后在浏览器里输入 https://localhost/default.aspx 来试着访问该页,注意这里“https”(而不是“http”)的用法,表示你要通过SSL来连接。

如果你使用IE7,你会看到这个谨防欺诈(anti-phishing)的错误信息:

如果这发生的话,别怕,这只不过是IE想帮你,向你表明你本地机器的自签证书看上去有点可疑。点击“继续连接这个网站(Continue to this website)”链接跳过这个安全警告,继续连接到该网站上。你会发现你的default.aspx网页现在是在SSL保护下运行的:

至此,全部完成!

附录:几个关于SSL的注意事项

最后,几个涉及SSL的注意事项:

  • IIS 7.0管理工具有个“SSL设置(SSL Settings)”节点,你可以针对每个网站,目录或者文件来做选择,这允许你控制特定的资源执行时是否需要SSL请求。这对login.aspx这样的网页来说很有用,因为你要保证只有在加过密的通道上提交信息时,用户才能输入他们的身份信息。假如你配置login.asp需要SSL的话,IIS 7.0就会堵截浏览器的访问,除非是通过SSL来访问的。
  • 在ASP.NET网页或处理器(handler)里,你可以通过检查Request.IsSecure属性,用编程的手法检查当前请求是否使用了SSL(假如进来的浏览器请求是通过SSL的,该属性会返回true)。
  • 你可以设置web.config文件中的 <forms> 配置部分的“requireSSL”属性,要求ASP.NET的表单认证系统确保表单认证cookie只有在启用了SSL的网页和URLs上才可以设置和使用。这避免了黑客在不受SSL保护的网页上试着拦截认证cookie,然后试着从另外的机器上使用“重放攻击(Replay Attack)”来冒充用户的危险。

想了解更多IIS 7.0信息的话,请阅读我以前的写的IIS 7.0 综述的博客贴子,也一定要去看一下www.iis.net网站。

想阅读我的其他“技巧和诀窍”博客贴子的话,请访问我的技巧和诀窍汇总网页

希望本文对你有所帮助,

Scott

MOSS Links & Workflow Foundation:【上一篇】
JSON劫持以及ASP.NET AJAX 1.0是如何避免这些攻击的:【下一篇】
【相关文章】
  • Vista上的IIS7设置全攻略
  • 备份和恢复Windows IIS服务器设置
  • IIS访问ASP页面时报错The requested resource is in use.的解决方法
  • 2007.04.09继续优化
  • 2007.04.11 Resample优化
  • 与iis服务相关的一个系统服务--eventlog
  • Tomcat+SSL
  • 使用SSL构建安全的Socket
  • 虚拟主机IIS防范入侵常见问答
  • IIS无法启动问题
  • 【随机文章】
  • 让 Python 与 DB 共舞 - 谈 DB-API 模组
  • openwebmail安裝筆記
  • 优化Java Applet的加载过程
  • Windows蓝屏死机代码完全解析
  • 嵌入式硬件梗概(2)
  • 基础架构的开发任务
  • inetd
  • Windows2000下整合Mysql4.0.13与Tomcat4.1.24搭建Jsp环境
  • 怎样在windows下加大mysql的连接数?
  • 让Editplus支持汇编语言语法高亮显示
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.