java.io.EOFException: SSL peer shut down incorrectly jdk1.8不支持TSLv1.3问题解决
场景
使用ResCU(Java (JAX-RS) rest 服务框架)调用www.derbit.com 使用墙导致报错
本地环境
jdk adoptopenjdk-8.jdk
报错如下
12:09:19.321 [main] DEBUG si.mazi.rescu.HttpTemplate - Executing GET request at <https://www.deribit.com/api/v2/public/get_order_book?instrument_name=BTC-PERPETUAL>
javax.net.ssl.SSLHandshakeException: Remote host terminated the handshakeat java.base/sun.security.ssl.SSLSocketImpl.handleEOF(SSLSocketImpl.java:1696)at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1514)at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1416)at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:456)at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:427)at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:572)at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:201)at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1592)at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:334)at si.mazi.rescu.HttpTemplate.receive(HttpTemplate.java:122)at si.mazi.rescu.RestInvocationHandler.receiveAndMap(RestInvocationHandler.java:162)at si.mazi.rescu.RestInvocationHandler.invoke(RestInvocationHandler.java:119)at com.sun.proxy.$Proxy17.getOrderBook(Unknown Source)at org.market.hedge.deribit.perpetualSwap.service.DeribitPerpetualSwapMarketDataServiceRaw.getDeribitOrderBook(DeribitPerpetualSwapMarketDataServiceRaw.java:35)at org.market.hedge.deribit.perpetualSwap.service.DeribitPerpetualSwapMarketDataService.getOrderBook(DeribitPerpetualSwapMarketDataService.java:33)at org.market.hedge.deribit.swap.DeribitMarketDataTest.getDeribitOrderBookTest(DeribitMarketDataTest.java:42)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.base/java.lang.reflect.Method.invoke(Method.java:566)at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)at org.junit.runners.ParentRunner.run(ParentRunner.java:413)at org.junit.runner.JUnitCore.run(JUnitCore.java:137)at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
Caused by: java.io.EOFException: SSL peer shut down incorrectlyat java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:483)at java.base/sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:472)at java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:160)at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:111)at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1506)... 41 more
排查过程
1. 启动项增加-Djavax.net.debug=SSL,handshake debug 排查
首先看到是javax.net.ssl.SSLHandshakeException ,启动项增加-Djavax.net.debug=SSL,handshake deubg 输出日志排查
控制台输出如下
12:16:53.147 [main] DEBUG si.mazi.rescu.HttpTemplate - Executing GET request at <https://www.deribit.com/api/v2/public/get_order_book?instrument_name=BTC-PERPETUAL>
javax.net.ssl|FINE|01|main|2023-01-07 12:16:53.202 CST|SSLCipher.java:438|jdk.tls.keyLimits: entry = AES/GCM/NoPadding KeyUpdate 2^37. AES/GCM/NOPADDING:KEYUPDATE = 137438953472
javax.net.ssl|FINE|01|main|2023-01-07 12:16:53.370 CST|Utilities.java:73|the previous server name in SNI (type=host_name (0), value=www.deribit.com) was replaced with (type=host_name (0), value=www.deribit.com)
javax.net.ssl|FINE|01|main|2023-01-07 12:16:53.372 CST|HandshakeContext.java:304|No available cipher suite for TLS13
javax.net.ssl|FINE|01|main|2023-01-07 12:16:53.397 CST|SSLExtensions.java:260|Ignore, context unavailable extension: status_request
javax.net.ssl|WARNING|01|main|2023-01-07 12:16:53.402 CST|SignatureScheme.java:297|Signature algorithm, ed25519, is not supported by the underlying providers
javax.net.ssl|WARNING|01|main|2023-01-07 12:16:53.402 CST|SignatureScheme.java:297|Signature algorithm, ed448, is not supported by the underlying providers
javax.net.ssl|INFO|01|main|2023-01-07 12:16:53.408 CST|AlpnExtension.java:161|No available application protocols
javax.net.ssl|FINE|01|main|2023-01-07 12:16:53.408 CST|SSLExtensions.java:260|Ignore, context unavailable extension: application_layer_protocol_negotiation
javax.net.ssl|FINE|01|main|2023-01-07 12:16:53.408 CST|SSLExtensions.java:260|Ignore, context unavailable extension: status_request_v2
javax.net.ssl|FINE|01|main|2023-01-07 12:16:53.408 CST|SSLExtensions.java:260|Ignore, context unavailable extension: renegotiation_info
javax.net.ssl|FINE|01|main|2023-01-07 12:16:53.410 CST|ClientHello.java:575|Produced ClientHello handshake message (
"ClientHello": {"client version" : "TLSv1.2","random" : "50 BA 4B 6E DF 0A ED 79 36 C8 DE 59 66 C1 4D 06 00 0C 9E CF 91 82 28 49 4C A2 BF 60 26 E2 6A 9C","session id" : "","cipher suites" : "[TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384(0xC02C), TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256(0xC02B), TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384(0xC030), TLS_RSA_WITH_AES_256_GCM_SHA384(0x009D), TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384(0xC02E), TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384(0xC032), TLS_DHE_RSA_WITH_AES_256_GCM_SHA384(0x009F), TLS_DHE_DSS_WITH_AES_256_GCM_SHA384(0x00A3), TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256(0xC02F), TLS_RSA_WITH_AES_128_GCM_SHA256(0x009C), TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256(0xC02D), TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256(0xC031), TLS_DHE_RSA_WITH_AES_128_GCM_SHA256(0x009E), TLS_DHE_DSS_WITH_AES_128_GCM_SHA256(0x00A2), TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384(0xC024), TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384(0xC028), TLS_RSA_WITH_AES_256_CBC_SHA256(0x003D), TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384(0xC026), TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384(0xC02A), TLS_DHE_RSA_WITH_AES_256_CBC_SHA256(0x006B), TLS_DHE_DSS_WITH_AES_256_CBC_SHA256(0x006A), TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA(0xC00A), TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA(0xC014), TLS_RSA_WITH_AES_256_CBC_SHA(0x0035), TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA(0xC005), TLS_ECDH_RSA_WITH_AES_256_CBC_SHA(0xC00F), TLS_DHE_RSA_WITH_AES_256_CBC_SHA(0x0039), TLS_DHE_DSS_WITH_AES_256_CBC_SHA(0x0038), TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256(0xC023), TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256(0xC027), TLS_RSA_WITH_AES_128_CBC_SHA256(0x003C), TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256(0xC025), TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256(0xC029), TLS_DHE_RSA_WITH_AES_128_CBC_SHA256(0x0067), TLS_DHE_DSS_WITH_AES_128_CBC_SHA256(0x0040), TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA(0xC009), TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA(0xC013), TLS_RSA_WITH_AES_128_CBC_SHA(0x002F), TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA(0xC004), TLS_ECDH_RSA_WITH_AES_128_CBC_SHA(0xC00E), TLS_DHE_RSA_WITH_AES_128_CBC_SHA(0x0033), TLS_DHE_DSS_WITH_AES_128_CBC_SHA(0x0032), TLS_EMPTY_RENEGOTIATION_INFO_SCSV(0x00FF)]","compression methods" : "00","extensions" : ["server_name (0)": {type=host_name (0), value=www.deribit.com},"supported_groups (10)": {"versions": [secp256r1, secp384r1, secp521r1, ffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192]},"ec_point_formats (11)": {"formats": [uncompressed]},"signature_algorithms (13)": {"signature schemes": [ecdsa_secp256r1_sha256, ecdsa_secp384r1_sha384, ecdsa_secp521r1_sha512, rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rsa_pss_rsae_sha512, rsa_pss_pss_sha256, rsa_pss_pss_sha384, rsa_pss_pss_sha512, rsa_pkcs1_sha256, rsa_pkcs1_sha384, rsa_pkcs1_sha512, dsa_sha256, ecdsa_sha224, rsa_sha224, dsa_sha224, ecdsa_sha1, rsa_pkcs1_sha1, dsa_sha1]},"signature_algorithms_cert (50)": {"signature schemes": [ecdsa_secp256r1_sha256, ecdsa_secp384r1_sha384, ecdsa_secp521r1_sha512, rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rsa_pss_rsae_sha512, rsa_pss_pss_sha256, rsa_pss_pss_sha384, rsa_pss_pss_sha512, rsa_pkcs1_sha256, rsa_pkcs1_sha384, rsa_pkcs1_sha512, dsa_sha256, ecdsa_sha224, rsa_sha224, dsa_sha224, ecdsa_sha1, rsa_pkcs1_sha1, dsa_sha1]},"extended_master_secret (23)": {<empty>},"supported_versions (43)": {"versions": [TLSv1.2, TLSv1.1, TLSv1, SSLv3]}]
}
)
javax.net.ssl|SEVERE|01|main|2023-01-07 12:16:58.146 CST|TransportContext.java:316|Fatal (HANDSHAKE_FAILURE): Couldn't kickstart handshaking (
"throwable" : {javax.net.ssl.SSLHandshakeException: Remote host terminated the handshakeat sun.security.ssl.SSLSocketImpl.handleEOF(SSLSocketImpl.java:1561)at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1391)at sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1291)at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:435)at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:197)at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1570)at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1498)at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:352)at si.mazi.rescu.HttpTemplate.receive(HttpTemplate.java:122)at si.mazi.rescu.RestInvocationHandler.receiveAndMap(RestInvocationHandler.java:162)at si.mazi.rescu.RestInvocationHandler.invoke(RestInvocationHandler.java:119)at com.sun.proxy.$Proxy14.getOrderBook(Unknown Source)at org.market.hedge.deribit.perpetualSwap.service.DeribitPerpetualSwapMarketDataServiceRaw.getDeribitOrderBook(DeribitPerpetualSwapMarketDataServiceRaw.java:35)at org.market.hedge.deribit.perpetualSwap.service.DeribitPerpetualSwapMarketDataService.getOrderBook(DeribitPerpetualSwapMarketDataService.java:33)at org.market.hedge.deribit.swap.DeribitMarketDataTest.getDeribitOrderBookTest(DeribitMarketDataTest.java:42)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)at org.junit.runners.ParentRunner.run(ParentRunner.java:413)at org.junit.runner.JUnitCore.run(JUnitCore.java:137)at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)Caused by: java.io.EOFException: SSL peer shut down incorrectlyat sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:167)at sun.security.ssl.SSLTransport.decode(SSLTransport.java:109)at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1383)... 40 more})
javax.net.ssl|FINE|01|main|2023-01-07 12:16:58.147 CST|SSLSocketImpl.java:1601|close the underlying socket
javax.net.ssl|FINE|01|main|2023-01-07 12:16:58.147 CST|SSLSocketImpl.java:1620|close the SSL connection (initiative)
javax.net.ssl.SSLHandshakeException: Remote host terminated the handshakeat sun.security.ssl.SSLSocketImpl.handleEOF(SSLSocketImpl.java:1561)at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1391)at sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1291)at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:435)at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:197)at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1570)at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1498)at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:352)at si.mazi.rescu.HttpTemplate.receive(HttpTemplate.java:122)at si.mazi.rescu.RestInvocationHandler.receiveAndMap(RestInvocationHandler.java:162)at si.mazi.rescu.RestInvocationHandler.invoke(RestInvocationHandler.java:119)at com.sun.proxy.$Proxy14.getOrderBook(Unknown Source)at org.market.hedge.deribit.perpetualSwap.service.DeribitPerpetualSwapMarketDataServiceRaw.getDeribitOrderBook(DeribitPerpetualSwapMarketDataServiceRaw.java:35)at org.market.hedge.deribit.perpetualSwap.service.DeribitPerpetualSwapMarketDataService.getOrderBook(DeribitPerpetualSwapMarketDataService.java:33)at org.market.hedge.deribit.swap.DeribitMarketDataTest.getDeribitOrderBookTest(DeribitMarketDataTest.java:42)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)at org.junit.runners.ParentRunner.run(ParentRunner.java:413)at org.junit.runner.JUnitCore.run(JUnitCore.java:137)at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
Caused by: java.io.EOFException: SSL peer shut down incorrectlyat sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:167)at sun.security.ssl.SSLTransport.decode(SSLTransport.java:109)at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1383)... 40 more
可看到日志No available cipher suite for TLS13 没有可用的TLSv1.3 协议所导致的。
No available cipher suite for TLS13 没有可用的TLSv1.3 协议所导致
2. 查看jdk支持TLS版
SSLContext context1 = SSLContext.getInstance("TLS");
context1.init(null, null, null);
String[] supportedProtocols = context1.getDefaultSSLParameters().getProtocols();
System.out.println("Enabled Protocol: "+Arrays.toString(supportedProtocols));# console
# Enabled Protocol: [TLSv1.2, TLSv1.1, TLSv1, SSLv3]
jdk1.8 不支持TLSv1.3
3. Java HTTPS请求默认使用的TLS版本
解决方案
1.切换jdk版本
需要提及如切换到JDK11 或更高版本是禁用SSLv3, TLSv1, TLSv1.1,想要使用解决如下
第一种解决方案
JDK11 或更高版本java.security 文件在系统中的目录路径位于
$JAVA_HOME/conf/security/java.security
jdk.tls.disabledAlgorithms参数 对应需要使用协议删除保存即可
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \\DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL
第二种解决方案
启用自定义安全配置
启动项增加
-Djava.security.properties=/path/to/your/es.java.security
2.不切换jdk情况下更改java.security增加Azul的OpenJSSE lib对TSLv1.3的支持
当然还有其他jdk版本也支持TSLv1.3,本文以Azul的JDK se 8为例子
将OpenJSSE增加到java.security文件第一个位置
JDK8java.security 文件在系统中的目录路径
$JAVA_HOME/jre/lib/security/java.security
security.provider.1=org.openjsse.net.ssl.OpenJSSE
java.io.EOFException: SSL peer shut down incorrectly jdk1.8不支持TSLv1.3问题解决相关推荐
- Caused by: java.io.EOFException: SSL peer shut down incorrectly
详细报错信息如下: 2022-03-07 11:29:33.123 ERROR 70700 --- [eate-1250315597] com.alibaba.druid.pool.DruidData ...
- Springboot, link failure、SSL peer shut down incorrectly、Unsupported record version Unknown-0.0问题
参考:spring-boot 2.5.6 问题:WARN: This connection is using TLSv1.1_zzhongcy的博客-CSDN博客 1.错误现象 最近升级Springb ...
- Android studio 报错解决:Error:SSL peer shut down incorrectly
此文首发于我的Jekyll博客:zhang0peter的个人博客 很久没用 Android studio 了,刚刚在打开一个项目的biuld过程中报错: SSL peer shut down inco ...
- 【android】SSL peer shut down incorrectly
错误信息: ERROR: SSL peer shut down incorrectly错误解决(Android Studio) 错误原因: android studio在下载"gradle- ...
- SSL peer shut down incorrectly报错解决
新下载下来的项目,sync project 时报这个错SSL peer shut down incorrectly 1.增加阿里仓库 maven { url 'http://maven.aliyun. ...
- AndroidStudio SSL peer shut down incorrectly
AndroidStudio SSL peer shut down incorrectly AndroidStudio 编译时出现如下问题 SSL peer shut down incorrectly ...
- SSL peer shut down incorrectly 问题处理方法
AndroidStudio 编译时出现如下问题 SSL peer shut down incorrectly ,或者某些jar包下载不下来,一般是因为墙的原因导致的.这时候我们就需要配置镜像来解决这个 ...
- SSL peer shut down incorrectly
问题描述 想把安卓工程打包成SDK,修改好app下的gradle文件后,sync,接着Rebuild Project,报了如题所示错误. 解决方法 可以先尝试方法二,我是通过方法二解决的 解决方法一: ...
- Android Studio在编译时出现SSL peer shut down incorrectly问题
前言 Android Studio在进行编译时有可能出现SSL peer shut down incorrectly问题.这是因为墙的原因导致gradle资源下载不下来.我也是在网上找到了一些资源,总 ...
- AndroidStudio编译报错SSL peer shut down incorrectly
AndroidStudio 编译时出现如下问题 SSL peer shut down incorrectly 或者某些jar包下载不下来,一般是因为墙的原因导致的. 这时候我们就需要配置镜像来解决这个 ...
最新文章
- 【Android 逆向】使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 反汇编二进制机器码 | 打印反汇编数据 )
- 每日程序C语言12-统计字符个数
- v-charts显示标题
- 酷酷实训计划及测试计划
- 提高SQLITE 大数据量操作效率的方法
- 8、java中的内部类
- 计算机云平台架构,基于虚拟化技术的云计算平台架构研究
- hosts文件相关(hosts文件位置、hosts文件的一些用途、cmd命令修改hosts文件)
- Guava Cache 过期回源
- 《你的降落伞是什么颜色》-- 读书笔记
- 【URL重写】IIS7配置URL重写
- Ext.js 自定义桌面注意
- 计算机怎么采集模拟量信号,如何采集模拟量和数字量
- xarray的DataArray查看nan数量
- TFTLCD 薄膜晶体管液晶显示器——探索者为例
- 连接MYSQL时,主机名为 localhost 和 127.0.0.1 的区别
- 发现中国地铁名字的秘密
- astar不能用了_“早C晚A”?做完功课我发现:并不是所有人都能用对
- jsp+tomcat+mysql+sevlet+javabean配置过程
- 2022-10深度操作系统20.7.1正式发布,增加NVIDIA驱动预装功能
热门文章
- 服装营销新模式:微博很给力
- C语言printf函数参数有多个“”
- 腾讯天幕:3+2+N盘活联动生态,助力企业安全护网
- 全球最厉害的 14 位程序员,大神收下我的膝盖
- java+springmvc+vues 基于ssm的智慧社区报修房屋缴费管理系统#毕业设计
- 影响E-mark认证周期以及费用的因素是什么?
- 2021-3-6组会 Multi-Scale Emotion TTS 分享
- 因果推断-异质性分析
- 2016.03.10,英语,《Vocabulary Builder》Unit 05
- 渗透实用的工具网站 希望对你们有用,