java1.6升级1.7,JDK从1.6升级到1.7引发的问题

handshake alert: unrecognized_name1

2

3

4javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name

at sun.security.ssl.ClientHandshaker.handshakeAlert(ClientHandshaker.java:1288)

at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1904)

at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1027)

Java 7引进了SNI(Server Name Indication 是为了解决一个服务器使用多个域名和证书的SSL/TLS扩展。既是,在连接到服务器建立SSL连接之前先发送要访问站点的域名(Hostname),这样服务器根据这个域名返回一个合适的证书。)的支持,默认是开启状态的,这个会导致在建立SSL连接握手的时候需要获取到访问连接的正确的虚拟域。要使用SNI,需要客户端和服务器端同时满足条件(客户端和服务器端都支持SNI,客户端发送了正确的域名,服务器端也做了相应的SNI配置)。

为了解决这个问题,可以手动的设置一下jsse.enableSNIExtension属性,暂时把SNI禁用掉,设置方法:

方法一:启动参数中添加:-Djsse.enableSNIExtension=false

方法二:System.setProperty(“jsse.enableSNIExtension”, “false”);

Xstream no-args constructor error1com.thoughtworks.xstream.converters.ConversionException: Cannot construct ClassXXX as it does not have a no-args constructor : Cannot construct java.util.RandomAccessSubList as it does not have a no-args constructor

升级JDK版本,导致xstream不兼容,解决方法:

提供一个无参构造函数

xstream版本升级到1.4.4以上

ClassXXX实现序列化接口

2016-08-03 10:21:39.972 [schedulerFactoryBean_Worker-2] WARN com.yeepay.common.utils.CallbackUtils - connection error : java.lang.RuntimeException: Could not generate DH keypair

javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair

at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)

at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1904)

at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1862)

把低版本的bcprovexclude掉:

f04f1ea7f757f68e4de8f1a5c1bf3db9.png

引入新的版本:

1

2

3

4

5

org.bouncycastle

bcprov-jdk15

1.46

References

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值