IIS6上Ssl开发环境的搭建
1.安装Certificate Services:
在Add or Remove Programs –> Add/Remove Windows Components下勾选Certificate Services安装
2.给要使用SSL的website添加证书。添加证书的过程比较麻烦,这里使用IIS6的Toolkit里的SelfSSL工具来自动完成这个任务。SelfSSL的使用方法如下:
C:\>selfssl.exe /?
Microsoft (R) SelfSSL Version 1.0
Copyright (C) 2003 Microsoft Corporation. All rights reserved.
Installs self-signed SSL certificate into IIS.
SELFSSL [/T] [/N:cn] [/K:key size] [/S:site id] [/P:port]
/T Adds the self-signed certificate to "Trusted Certificates"
list. The local browser will trust the self-signed certificate
if this flag is specified.
/N:cn Specifies the common name of the certificate. The computer
name is used if not specified.
/K:key size Specifies the key length. Default is 1024.
/V:validity days Specifies the validity of the certificate. Default is 7 days.
/S:site id Specifies the id of the site. Default is 1 (Default Site).
/P:port Specifies the SSL port. Default is 443.
/Q Quiet mode. You will not be prompted when SSL settings are
overwritten.
The default behaviour is equivalent with:
selfssl.exe /N:CN=ONLYVC1 /K:1024 /V:7 /S:1 /P:443
C:\>
需要注意到是/S选项,这个工具要通过site-id制定给某一个website。而找site-id的办法可以使用ShowSiteId.vbs这个脚本来获取(还没找到更便捷的方法)
这里可以看到Windows Script Host里的223085046,这个数字就是site-id。值得一提的是默认的Default Web Site的site-id为1,这是保留值。
/N:CN={value}的值是请求的domain,也就是host里设置的值。因为证书是与domain对应的,这里也可以使用/K:512来选择使用512位的加密,鉴于作为开发服务器的设置,建议设置的过期时间长一些,默认为/V:7(7天)。
3.操作完之后可以打开inetmgr,在刚才操作的站点上的Properties的Directory Security选项卡里,点View Certificate可以看到:
4.确保IIS的https设置如下:
然后就可以通过https://test2.vifii.cn/来测试。
5. 最后,在server上搭建了这个环境后,如果用其他机器去连接,那么在IE7下访问得到的得到的结果是:
这个问题的原因是:
In your web browser, there is a list of Trusted Root Certification Authorities (CAs). The Microsoft Certificate Server you setup isn't on that list. If this is website is for use by internal systems, you could import your CA into the browsers of your PCs. If this is going to be a public website, you'll need to buy a certificate for your server from one of the Trusted Root CAs.
所以我们在上面view certifate的时候看到的Ensures the identity of a remote computer。
在开发服务器上搭建完之后,如果我们在客户端访问嫌每次浏览器到警告比较麻烦的话,可以将证书到出成pfx文件,然后发布给大家。
还是在view certificate的view选项卡里导出证书文件:
一直按提示就可以,最后保存成文件发给developers。客户端导入证书的方式是:
IE->Tools->Internet Options->Content->Certificates->Import…->选择哪个证书文件->导入到Trusted Root Certification Authorities里。
再次打开https://test2.vikii.cn/,就不再有提示了。
===========
附:
在IIS里可以对website/dictionary/file上点右键property的security里设置Secure Communications。
关于Client certificates的3个选项的说明是:
Ignore:忽略证书
Accept:有证书就接受,没有就忽略证书问题
Require:这个需要勾选上边的Require secure channel(SSL)后才能选择该项,选择后将会导致只有有证书的用户才能访问,否则,给予403.7的status code表示没有证书不允许访问。
因为我们现在使用SSL的目的是为了防止clear text传输时泄漏问题,所以这里选择Ignore即可。
最后:使用SSL需要依赖于证书,证书要求一定的级别才不会在客户端出现提示的问题,因此需要购买信任的根证书发布机构发布的,这样才能使整个过程的用户体验平滑。
vbs文件:
SelfSSL.exe可以在IIS Tool Kit里找到(iis6.0)