环境:Windows Server 2003 IIS60 SSL双向认证
由于我们的项目服务器升级,需要搭建新的系统环境,全部安装到了最新的补丁。由于想就切换一下服务器,应该没什么问题,只是测了系统的功能,并没有测试SSL登录这块,因这个涉及到另一个部门协作,我们也是为了省事,感觉应该没问题,就没有测这块。其实还有其它原因的,我也不方便说都是内部矛盾。
事实表明当你想省事的时候,它就偏偏不叫你省事,果真估切换的当晚就出现问题了,SSL双向认证不成功。项目组又不能给出准确的错误原因,我们不知道错误又没有办法查找原因。最后吵了一架后,还是完全由我来解决这个问题了。
首先,我使用Wireshark软件来进行抓包,分析三次握手的过程,看一看每次是否都是成功了,由于我们使用的不是默认的443端口,所以显示不出来握手的过程。后来我查到了一个资料需要修改一个地方,增加所需要的端口号就可以了,这是第一天晚上半夜的收获。
第二天到公司抓包,果然发现三次握手有问题,服务器并没有请求客户端的证书,所以无法访问到后端的程序。问题的原因比较明显了,服务器有问题,至于为什么没有请求客户端的证书就不知道了,IIS都是按照上次的设置没有问题,根证书、服务器证书也都没有问题,其中根证书都导入了很多次。SSL协议用了这么多年了,也肯定不会有问题,于是就在网上搜索查找错误的原因,最后找到了一个资料说操作系统打了KB977377这个补丁会影响SSL认证,这已是第二天的半夜了。我很高兴找到了一个可能产生的原因,第二天赶紧去公司去试验,补丁卸载不掉,因为没有按钮,于是我在注册表中删除了那两个键值,重启服务器。再来进行SSL认证登录,一切OK,我十分的高兴。因为我把问题解决了。
阅读(4068) | 评论(0) | 转发(0) |