这是一篇小白文 0.0 嘻嘻
开发时,需要调用到第三方的web服务接口,出现了这个问题,初次见面,对这个问题有点陌生,因为之前也没有去了解过这一块(毕竟刚出来工作哈)
1、一开始通过搜索大致了解到这个东西大致可能和ssl协议的选择有关,于是去了解用户环境中使用的jdk版本以及第三方服务器的jdk版本。同时,在网络中找到一张图片(侵权私删哈),观察了各版本jdk对应使用的协议
通过上图,可以看到一些默认使用情况,以及可以搜索一下,网上有挺多改默认的方法。
然而询问后发现,第三方服务用的jdk版本是1.6的,然而我们的是1.7的,按照图片上来看,默认的协议都是一样的,同时双方都没有修改过这一类型的操作
于是继续的去寻找答案,花了一点时间后发现,可能是web服务端配置的是SSL双向认证,而我们只是按照单向认证时发送的,这样就导致服务端验证客户端证书时,发现客户端没有证书,然后就断开了握手连接。
最后与服务端那边沟通,获取了中间证书文件,使用java的keytool将证书导入后解决了问题。
感谢阅读,欢迎大家指点与批评