如何解决实际错误:配置IIS使其支持SSL加密的HTTPS,并且要求浏览器客户端证书
在配置IIS的HTTPS和IE客户端的证书时,我们经常出错,本文就是通过在实际生产环境中配置SSL的过程,让您看看您可能会错在哪里?
当我们在企业需要WEB发布较为保密的数据时,我们一般把IIS 配置成HTTPS的模式。同时,如果我们只希望企业内部人员进行访问而又不希望进行登录时,我们可以在客户端上配置“浏览器证书”(根CA)或“用户证书”(企业CA),具体的做法可以分为如下几步:
1、通过Windows 2003 安装 证书CA服务器 功能。
在这一步容易出错的主要是,安装CA证书服务时,没有安装同步安装CA服务器的IIS功能,这样会导致无法通过浏览器来访问,
即: http://CA_Server/CertSRV,打不开。
解决办法是通过命令行
"certutil -vroot"
就可以自动给IIS安装上相应的WEB功能,以给其它机器提供CA服务。
2、 通过WEB服务器的IIS里的证书申请功能,向CA申请一个服务器证书,其作用是“验证远程服务器的身份”。
在一步容易出错的主要问题是,在申请证书时通用名称或是好记的名称里,我们要加上WEB服务器的URL,最好内部URL和外部URL要相同,如:www.boc.cn
3、申请完毕后在IIS中安装,只要“目录安全性”的证书框中点击“编辑”勾上“要求安全通道(SSL)”,就OK了。
这一步容易出错的是,如何在生产环境中,CA服务器和WEB服务器不是同一台机器,必须让WEB服务器和客户端的PC机都“信任”CA服务器,可以通过在WEB服务器或是PC机客户端中访问CA的WEB
http://CA_Server/CertSRV/Certcarc.asp
中的“请安装CA证书链”,来完成。
4、客户端访问CA的WEB完成如下步:申请“WEB浏览器证书”或是“用户”证书-到CA服务器用MMC颁布-客户端通过IE再安装证书。
填写:大家怕错都会填上国家什么的,其实只要写一个姓名,就好。
类型:在访问CA的WEB申请时,最好,打开“更多选择”和“高级证书申请”,“好记的名称”一栏填上WEB服务器的URL,如www.boc.cn
请注意:在申请的时候就要决定这个证书的私钥是不是可以导出的。所以,如果这个证书,你希望别人也用,那么你申请时就要勾上这个选项,否则只能重申请。
5、在WEB服务器的IIS中,勾上“要求客户端证书”,就可以实现双向的SSL认证了。
在测试环境是这样,但是生产环境,客户端IE总是显示SSL服务器认为“证书吊销”的错误。
大家都认为,只要客户端证书与服务器证书的颁发机构是一样的, 就OK了。 其实大家都错了。
一旦打上了这个勾,一定一定要请你确认你客户端证书内的“CRL分发点”字段,内有2个URL,起码有一个URL对于开启SSL的IIS来说是可以访问的。
在生产环境,CA和SSL WEB不总是在一起,并且由于DNS和内部名称的关系,这个“CRL分发点”URL对于IIS服务器来说,并不是可以访问的。
所以80%的SSL问题其实是由于这个URL对于IIS来说访问不了。
最后,如果你是初学者还没有碰到这个问题,请你先先看看下面的文章,如何碰到问题,再来看看本文。
IIS客户端证书访问配置 http://www.cnblogs.com/chnking/archive/2008/08/18/1270063.html
和如何在客户端使用证书连接WEB服务器,有了相当详细的教程。然而,在企业实际的生产网络中