java servername_java – 扩展server_name(SNI扩展名)不是用jdk1.8.0发送的,而是用jdk1.7.0发送的...

如上所述,原因与使用setHostnameVerifier()的JDK错误与SNI(Extension server_name)相关.

https://bugs.openjdk.java.net/browse/JDK-8144566

我们的解决方法:

测试后,我们发现将连接的SSLSocketFactory设置为与默认值相似的任何内容似乎可以解决问题.

这不行:

HttpsURLConnection.setSSLSocketFactory((SSLSocketFactory)SSLSocketFactory.getDefault());

这样做有效:

HttpsURLConnection.setSSLSocketFactory(new SSLSocketFactoryFacade());

所以,要修复一个JAX-WS客户端,你可以这样做:

bindProvider.getRequestContext().put(“com.sun.xml.internal.ws.transport.https.client.SSLSocketFactory”,新的SSLSocketFactoryFacade());

我们的SSLSocketFactory门面:(注意它真的没有做任何事情)

public class SSLSocketFactoryFacade extends SSLSocketFactory {

SSLSocketFactory sslsf;

public SSLSocketFactoryFacade() {

sslsf = (SSLSocketFactory) SSLSocketFactory.getDefault();;

}

@Override

public String[] getDefaultCipherSuites() {

return sslsf.getDefaultCipherSuites();

}

@Override

public String[] getSupportedCipherSuites() {

return sslsf.getSupportedCipherSuites();

}

@Override

public Socket createSocket(Socket socket,String s,int i,boolean b) throws IOException {

return sslsf.createSocket(socket,s,i,b);

}

@Override

public Socket createSocket(String s,int i) throws IOException,UnknownHostException {

return sslsf.createSocket(s,i);

}

@Override

public Socket createSocket(String s,InetAddress inetAddress,int i1) throws IOException,inetAddress,i1);

}

@Override

public Socket createSocket(InetAddress inetAddress,int i) throws IOException {

return createSocket(inetAddress,i);

}

@Override

public Socket createSocket(InetAddress inetAddress,InetAddress inetAddress1,int i1) throws IOException {

return createSocket(inetAddress,inetAddress1,i1);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值