国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

java.io.EOFException: SSL peer shut down incorrectly jdk1.8不支持TSLv1.3問題解決

這篇具有很好參考價值的文章主要介紹了java.io.EOFException: SSL peer shut down incorrectly jdk1.8不支持TSLv1.3問題解決。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

場景

使用ResCU(Java (JAX-RS) rest 服務框架)調(diào)用www.derbit.com 使用墻導致報錯

  • 本地環(huán)境

  • 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 handshake
	at 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 incorrectly
	at 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 handshake
  	at 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 incorrectly
  	at 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 handshake
	at 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 incorrectly
	at 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 協(xié)議所導致的。

No available cipher suite for TLS13 沒有可用的TLSv1.3 協(xié)議所導致

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 文件在系統(tǒng)中的目錄路徑位于

  • $JAVA_HOME/conf/security/java.security

  • jdk.tls.disabledAlgorithms參數(shù) 對應需要使用協(xié)議刪除保存即可

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 文件在系統(tǒng)中的目錄路徑

  • $JAVA_HOME/jre/lib/security/java.security文章來源地址http://www.zghlxwxcb.cn/news/detail-412684.html

security.provider.1=org.openjsse.net.ssl.OpenJSSE

到了這里,關于java.io.EOFException: SSL peer shut down incorrectly jdk1.8不支持TSLv1.3問題解決的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • websocket報錯:java.io.EOFException: null

    websocket報錯:java.io.EOFException: null

    提示:我這里是websocket在斷開連接時就會提示這個錯誤,但websocket連接的時候沒問題,不太清楚怎么回事,如有大佬清楚,希望可以指教一下,謝謝 既然提示沒有為它配置錯誤處理,那我們就為它配置一下錯誤處理 注意上面兩個參數(shù)是一點要的,不要的話啟動會報錯,不要

    2024年02月11日
    瀏覽(14)
  • java.io.EOFException產(chǎn)生的原因以及解決方法

    使用ObjectInputStream類往文件中傳入自定義類student時 02 異常產(chǎn)生原因 經(jīng)過導師查找,終于發(fā)現(xiàn)了OFException產(chǎn)生的原因 objectInputStream為空值,則不能使用objectInputStream.close();如果使用會產(chǎn)生并發(fā)癥 java.lang.NullPointerException(空指針異常) 03 異常解決 在finally語句內(nèi)加上判斷,不等于

    2024年02月09日
    瀏覽(25)
  • STLINK下載程序出現(xiàn)cannot access target. shutting down debug session問題解決的一般步驟

    STLINK下載程序出現(xiàn)cannot access target. shutting down debug session問題解決的一般步驟

    不要覺得只有USB接口線會出問題,排線也有可能出問題。 通過上網(wǎng)搜索得知,查找代碼是不是使用了下載的接口 PB3和PB4 I/O口,如果使用了,初始化了的話,需要改為其他 IO 口 有時會出現(xiàn)Cannot Load Flash Programming Algorithm 有時會出現(xiàn)Could not stop Cortex-M device.Please check the JTAG cabl

    2024年02月15日
    瀏覽(23)
  • 解決方案 SHUTDOWN_STATE xmlrpclib.py line: 794 && ERROR: supervisor shutting down

    解決方案 SHUTDOWN_STATE xmlrpclib.py line: 794 && ERROR: supervisor shutting down

    重新加載 Supervisor 配置 : 這將重新讀取 Supervisor 的配置文件,更新進程組,然后重啟所有進程。 查看 Supervisor 日志 : 這將顯示 Supervisor 的日志文件,您可以查看其中的錯誤信息以獲取更多細節(jié)。 supervisord -c /etc/supervisord.conf 錯誤? Error: Another program is already listening on a port

    2024年04月23日
    瀏覽(23)
  • websocket鏈接斷開服務器報錯java.io.EOFException解決辦法

    首先說一下報錯原因,由于默認60s無消息交互就會關閉長連接,所以導致這個報錯 解決方案其實也很簡單,既然是長時間沒有通信導致斷開,其實保持通信就好,可以設置心跳時間來解決。 可以前端也可以后端,附上前端代碼吧 //心跳檢測 var heartCheck = { ? ? timeout: 60000,//

    2024年02月08日
    瀏覽(20)
  • Error parsing HTTP request header java.io.EOFException: null

    問題: 我用postman請求就是正常的,但是用java的程序去請求就會報錯這個: 2024-01-17 16:38:52.077 DEBUG [http-nio-8885-exec-1][org.apache.coyote.http11.Http11Processor]182 Error parsing HTTP request header java.io.EOFException: null at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer(NioEndpoint.java:1259) at o

    2024年01月21日
    瀏覽(19)
  • java.io.IOException: unexpected end of stream on 以及java.io.EOFException: \n not found: limit=0

    java.io.IOException: unexpected end of stream on java.io.OKHttp Caused by: java.io.EOFException: n not found: limit=0 content=… 在一次使用OkHttp對接兩個第三方接口的時候遇到了這個報錯,情景是這樣的,先請求第一個接口得到一個結(jié)果,再把第一個結(jié)果作為參數(shù)傳到第二個接口,但是第二個接口一直

    2024年02月12日
    瀏覽(29)
  • Java: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated

    Java: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated

    我們在平時練習的時候一般使用低版本的jdk來練習,以便了解不同版本jdk的區(qū)別,下面是我們練習中遇到的問題 ?? 此代碼在本地開發(fā)環(huán)境正常運行,但是在服務器上mHttpClient.execute會報錯:? Exception in thread \\\"main\\\" javax.NET.ssl.SSLPeerUnverifiedException: peer not authenticated 本地開發(fā)環(huán)境

    2024年02月22日
    瀏覽(18)
  • java.io.IOException: Connection reset by peer

    接口返回的時候報錯,java.io.IOException: Connection reset by peer,具體報錯信息如下: 原因: 接口返回的數(shù)據(jù)量太大報錯, 解決辦法: 修改nginx緩存配置信息。 nginx原配置信息: nginx修改后信息: 注意: \\\"proxy_busy_buffers_size\\\"必須等于或大于\\\"proxy_buffer_size\\\"的最大值。

    2024年02月16日
    瀏覽(32)
  • 有關 java.io.IOException: Connection reset by peer 解決問題方法之一

    有很多大佬已經(jīng)終結(jié)出現(xiàn)這個錯誤的原因有一下幾種 1. 服務器在接受處理用戶請求時,自身的cpu、io、內(nèi)存、線程等資源都是有最大限制的。當并發(fā)請求超過服務器的承載量時,服務器會停掉一些請求。(但是要注意如果實際的并發(fā)數(shù)量沒有超過服務器的承載量,可能中了木

    2024年02月22日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包