场景

使用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问题解决相关推荐

  1. 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 ...

  2. 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 ...

  3. Android studio 报错解决:Error:SSL peer shut down incorrectly

    此文首发于我的Jekyll博客:zhang0peter的个人博客 很久没用 Android studio 了,刚刚在打开一个项目的biuld过程中报错: SSL peer shut down inco ...

  4. 【android】SSL peer shut down incorrectly

    错误信息: ERROR: SSL peer shut down incorrectly错误解决(Android Studio) 错误原因: android studio在下载"gradle- ...

  5. SSL peer shut down incorrectly报错解决

    新下载下来的项目,sync project 时报这个错SSL peer shut down incorrectly 1.增加阿里仓库 maven { url 'http://maven.aliyun. ...

  6. AndroidStudio SSL peer shut down incorrectly

    AndroidStudio SSL peer shut down incorrectly AndroidStudio 编译时出现如下问题 SSL peer shut down incorrectly ...

  7. SSL peer shut down incorrectly 问题处理方法

    AndroidStudio 编译时出现如下问题 SSL peer shut down incorrectly ,或者某些jar包下载不下来,一般是因为墙的原因导致的.这时候我们就需要配置镜像来解决这个 ...

  8. SSL peer shut down incorrectly

    问题描述 想把安卓工程打包成SDK,修改好app下的gradle文件后,sync,接着Rebuild Project,报了如题所示错误. 解决方法 可以先尝试方法二,我是通过方法二解决的 解决方法一: ...

  9. Android Studio在编译时出现SSL peer shut down incorrectly问题

    前言 Android Studio在进行编译时有可能出现SSL peer shut down incorrectly问题.这是因为墙的原因导致gradle资源下载不下来.我也是在网上找到了一些资源,总 ...

  10. AndroidStudio编译报错SSL peer shut down incorrectly

    AndroidStudio 编译时出现如下问题 SSL peer shut down incorrectly 或者某些jar包下载不下来,一般是因为墙的原因导致的. 这时候我们就需要配置镜像来解决这个 ...

最新文章

  1. 【Android 逆向】使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 反汇编二进制机器码 | 打印反汇编数据 )
  2. 每日程序C语言12-统计字符个数
  3. v-charts显示标题
  4. 酷酷实训计划及测试计划
  5. 提高SQLITE 大数据量操作效率的方法
  6. 8、java中的内部类
  7. 计算机云平台架构,基于虚拟化技术的云计算平台架构研究
  8. hosts文件相关(hosts文件位置、hosts文件的一些用途、cmd命令修改hosts文件)
  9. Guava Cache 过期回源
  10. 《你的降落伞是什么颜色》-- 读书笔记
  11. 【URL重写】IIS7配置URL重写
  12. Ext.js 自定义桌面注意
  13. 计算机怎么采集模拟量信号,如何采集模拟量和数字量
  14. xarray的DataArray查看nan数量
  15. TFTLCD 薄膜晶体管液晶显示器——探索者为例
  16. 连接MYSQL时,主机名为 localhost 和 127.0.0.1 的区别
  17. 发现中国地铁名字的秘密
  18. astar不能用了_“早C晚A”?做完功课我发现:并不是所有人都能用对
  19. jsp+tomcat+mysql+sevlet+javabean配置过程
  20. 2022-10深度操作系统20.7.1正式发布,增加NVIDIA驱动预装功能

热门文章

  1. 服装营销新模式:微博很给力
  2. C语言printf函数参数有多个“”
  3. 腾讯天幕:3+2+N盘活联动生态,助力企业安全护网
  4. 全球最厉害的 14 位程序员,大神收下我的膝盖
  5. java+springmvc+vues 基于ssm的智慧社区报修房屋缴费管理系统#毕业设计
  6. 影响E-mark认证周期以及费用的因素是什么?
  7. 2021-3-6组会 Multi-Scale Emotion TTS 分享
  8. 因果推断-异质性分析
  9. 2016.03.10,英语,《Vocabulary Builder》Unit 05
  10. 渗透实用的工具网站 希望对你们有用,