`

javax.net.ssl.SSLException: Received fatal alert: protocol_version异常

 
阅读更多

背景:一般出现在JDK7以及以下的版本客户端,https协议调用第三方应用报错。

可以通过https://myssl.com/检测当前第三方api服务支持的版本。

 

升级JDK8即可(比较靠谱),如果短时间无法升级,可通过运行JVM参数、系统变量等方式指定TLS为1.2(该方式可能无效),例如OKHttpClient如下:

ConnectionSpec spec = new ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS)   
  .tlsVersions(TlsVersion.TLS_1_2)  
  .cipherSuites(   
     CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,  
     CipherSuite.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,  
     CipherSuite.TLS_DHE_RSA_WITH_AES_128_GCM_SHA256)  
  .build();  
OkHttpClient client = ...   
client.setConnectionSpecs(Collections.singletonList(spec));  

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics