jdk1.6 支持 tls1.2协议过程中,遇到不信任证书问题。
事件:
因为调用的接口要升级到 tls1.2协议,但是我的项目环境是JDK1.6,功能多,代码乱不敢升级到JDK1.8.
根据网上查到的jdk1.6 支持 tls1.2协议的方法,新建TLSSocketConnectionFactory类并继承SSLSocketFactory。
同时 在 httpsurlconnection.setSSLSocketFactory(new TLSSocketConnectionFactory());
但是运行后报java.io.IOException: Internal TLS error, this could be an attack。
如果使用自己实现的X509TrustManager来信任所有证书,则只能用SSLContext,
httpsurlconnection.setSSLSocketFactory(sslcontext.getSocketFactory());而且不报错,接口正常调用。
调用的接口是http,不是https。
是否跟对方的测试接口没有升级到tls1.2协议有关。
TLSSocketConnectionFactory代码与下帖完全一致。
https://blog.csdn.net/g5zhu5896/article/details/80429686#commentBox
有知道的大神指点一下。