在IIS6上开启https服务方法分享
前两天因为需要修正一个WindowsLiveContactsGadget在https连接下无法工作的错误,在devmachine的IIS上设置了一下SSL功能。
大家都知道要开启SSL服务关键需要两个东西:
1.ACertificateAuthority(suchVeriSign.com)
2.Asitecertificate
如果你使用的是WindowsServer2003或者XPAdvancedServer,你其实可以利用系统提供的“CertificateServices”服务来“冒充”一个CA并给自己发一个sitecertificate,这里有一个tutorial:
Buildingyourowncertificateauthority:http://searchwindowssecurity.techtarget.com/tip/1,289483,sid45_gci1110403,00.html
如果你使用的是XPProfessional,就没有CA服务了。但作为程序调试或测试用的话,其实就只需要生成一个self-signedcertificate就可以了。等browser提示你是否接受这个untrustedcertificate的时候,只要选Yes就行。
生成self-signedcertificate有很多方法。稍微繁琐一点的可以用OpenSSL(OpenSSLforwindows:http://www.openssl.org/related/binaries.html)或者keytool(http://java.sun.com/j2se/1.4.2/docs/tooldocs/solaris/keytool.html)来sign一个certificate,然后再在IIS中导入这个certificate就行了。如果你想对IIS的相关设置有所了解的话,可以试试做一遍,这里也有一个tutorial:
EnablingSSLinIISonWindowsXPProfessional:http://www.somacon.com/p41.php
当然,如果你想省掉所有这些麻烦也行,最简单的在IIS启动SSL的方法只要3步:
1.下载IIS6.0ResourceKitTools:http://www.microsoft.com/downloads/details.aspx?FamilyID=56fc92ee-a71a-4c73-b628-ade629c89499&DisplayLang=en
2.安装.
3.“AllPrograms->IISResources->SelfSSL->SelfSSL”,在命令行中键入“selfssl”,回答“y”,andyouaredone.
现在你试试在browser里访问:https://localhost,你会发现会出现一个窗口询问是否接受一个untrustedcertificate,选Yes,andyouareinasafechannelnow.
最后附上微软的官方教程
为Web服务器配置SSL
要在IIS中启用SSL,首先必须获得用于加密和解密通过网络传输的信息的证书。IIS具有自己的证书请求工具,您可以使用此工具向证书颁发机构发送证书请求。此工具简化了获取证书的过程。如果您使用的是Apache,则必须手动获取证书。
在IIS和Apache中,您都会收到来自证书颁发机构的证书文件,此文件必须配置在计算机上。Apache使用SSLCACertificateFile指令读取其源文件中的证书。而在IIS中,您可以使用网站或文件夹属性的目录安全性选项卡来配置和管理证书。
您可以将证书从Apache迁移到IIS;但是Microsoft建议您重新创建或获取一个新的IIS证书。
配置文件夹或网站以使用SSL/HTTPS
- 此过程假定您的站点已经具备了证书。
- 以管理员身份登录到Web服务器计算机。
- 单击开始,指向设置,然后单击控制面板。
- 双击管理工具,然后双击Internet服务管理器。
- 从左窗格中的不同服务站点的列表中选择网站。
- 右键单击希望为其配置SSL通信的网站、文件夹或文件,然后单击属性。
- 单击目录安全性选项卡。
- 单击编辑。
- 如果希望网站、文件夹或文件要求SSL通信,请单击需要安全通道(SSL)。
- 单击需要128位加密以配置128位(而不是40位)加密支持。
- 要允许用户不必提供证书就可以连接,请单击忽略客户证书。或者,如果要让用户提供证书,请使用接受客户证书。
- 要配置客户端映射,请单击启用客户证书映射,然后单击编辑将客户证书映射到用户。如果配置了此功能,可以将客户证书分别映射到ActiveDirectory中的每个用户。可以使用此功能以根据用户访问网站时提供的证书自动识别用户。可以将用户一对一映射到证书(一个证书标识一个用户),或者将许多证书映射到一个用户(根据特定的规则,对照证书列表来匹配特定的用户。第一个有效的匹配项成为映射。)
- 单击确定。