问题:
刚上线的一个业务系统,系统对接方xxx无法注册,没有收到我们的注册请求
日志:
查看tomcat日志,提示
MESSAGE:com.xxxx.http.HttpClientHandler =>httpclient执行postEntity请求发生异常:
java.net.SocketException: Connection reset
结果:jsonView={"code":"4004","msg":"调用xxxx注册接口无响应。"}
处理过程:
测试访问对方接口
#curl -v https://xxxx.com.cn/wechat-api/member/xxxx.do
提示nss error -5961
升级nss
#yum update nss
导入对方接口域名证书到我方Linux服务器根证书ca-bundle.crt
#ll /etc/pki/tls/certs/ca-bundle.crt
操作指引可参考:linux系统添加根证书 linux证书信任列表
再次测试访问对方接口,正常访问
#curl -v https://xxxx.com.cn/wechat-api/member/xxxx.do
但检查日志,发现tomcat日志还是报一样的错误…
想起tomcat运行时会加载java中的cacerts证书库
目前tomcat服务器上安装jdk为1.7.x版本,尝试将jdk升级到1.8版本
# java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
升级完jdk,重启tomcat服务,以jdk1.8环境运行tomcat
再次检查日志,无报错~