windows server 2008 上客户端程序使用SSL第一次连接超时问题原因:
问题原因:
windows 有一个默认组策略,如果SSL根证书在系统中不存在会向根服务器请求,请求的超时时间默认是15s.
由于我们的根证书是自己生成的在系统中是不存在的,所以系统会向根服务器请求.
为什么我们本地没有出现这个问题,因为我们本地是连接的上网络的所以不会有这个问题.如果本地只是简单的断网也不能复现这个问题,因为windows底层向根服务器同步证书是有时效性的,会隔一段时间才同步(具体配置在哪里没有去找).,本地断网后还要将机器时间调大(调大10年)就会复现这个问题.
复现方法:
- 关闭外网连接:修改DNS服务器配置,将DNS服务器调整为一个不可达的地址
- 修改机器时间:将机器时间调大10年
- 使用客户端进行连接
解决方法:
- 关闭系统组策略
- 命令行执行gpedit.msc
- 点开:计算机配置/管理模板/系统/Internet 通信管理/Internet 通信设置 ;
- 设置 关闭自动根证书更新 开启
- 将根证书安装到客户端所在机器
- 使用非SSL进行通讯
- 购买合法机构颁布的子证书