IIS 7.0上用自签证书来启用SSL

2017 年 9 月 30 日2760

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

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

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

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

 第一步:创建一个新网站

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

IIS7.0上用自签证书来启用SSL

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

IIS7.0上用自签证书来启用SSL

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

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

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

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

 在IIS7.0中,可以这么来管理证书,点击左手树形视图管理器里的根机器节点(rootmachinenode),然后在右边的特性视窗里选择"服务器证书(ServerCertificates)"图案:(图3)

IIS7.0上用自签证书来启用SSL

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

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

IIS7.0上用自签证书来启用SSL

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

IIS7.0上用自签证书来启用SSL

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

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

IIS7.0上用自签证书来启用SSL

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

IIS7.0上用自签证书来启用SSL

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

IIS7.0上用自签证书来启用SSL

 Clickok,andwenowhaveSSLenabledforoursite:点击OK,我们就给我们的网站启用了SSL:(图9)

IIS7.0上用自签证书来启用SSL

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

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

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

IIS7.0上用自签证书来启用SSL

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

IIS7.0上用自签证书来启用SSL

 至此,全部完成!

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

 "IIS7.0管理工具有个"SSL设置(SSLSettings)"节点,你可以针对每个网站,目录或者文件来做选择,这允许你控制特定的资源执行时是否需要SSL请求。这对login.aspx这样的网页来说很有用,因为你要保证只有在加过密的通道上提交信息时,用户才能输入他们的身份信息。假如你配置login.asp需要SSL的话,IIS7.0就会堵截浏览器的访问,除非是通过SSL来访问的。

 "在ASP.NET网页或处理器(handler)里,你可以通过检查Request.IsSecure属性,用编程的手法检查当前请求是否使用了SSL(假如进来的浏览器请求是通过SSL的,该属性会返回true)。

 "你可以设置web.config文件中的<forms>配置部分的"requireSSL"属性,要求ASP.NET的表单认证系统确保表单认证cookie只有在启用了SSL的网页和URLs上才可以设置和使用。这避免了黑客在不受SSL保护的网页上试着拦截认证cookie,然后试着从另外的机器上使用"重放攻击(ReplayAttack)"来冒充用户的危险。

0 0