javax.net.ssl.SSLHandshakeException:收到致命警报:handshake_failure
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
我在两天内尝试了很多选项后发布了这个问题。以下是我尝试过的选项。
- 禁用 ssl 证书验证
- 通过从浏览器下载 crt 并转换为 .jks 并导入密钥库。
我仍然遇到这个问题,非常感谢任何帮助。
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1943)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1059)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1294)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1321)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1305)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:523)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1296)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at com.honeywell.sensibo.api.NewMain.main(NewMain.java:73)
我最近遇到了类似的错误,因为最近 JDK s(和浏览器,以及 Linux TLS 堆栈等)拒绝与我客户公司网络中的某些服务器通信。这是因为该网络中的某些服务器仍然具有 SHA-1 证书。
请看:
https://www.entrust.com/understanding-sha-1-vulnerabilities-ssl-longer-secure/
https://blog.qualys.com/ssllabs/2014/09/09/sha1-deprecation-what-you-need-to-know
如果这是您当前的情况(最近的 JDK 与弃用的证书加密),那么您最好的举措是 将您的网络更新为正确的加密技术 。
如果您应该为此提供暂时的解决方案,请查看另一个答案以了解如何让您的 JDK 信任或不信任某些加密算法:
无论如何,我坚持认为,如果我猜对了你的问题,这不是解决问题的好方法,你的网络管理员应该考虑删除这些已弃用的证书并获得一个新证书。
问题已解决。!!!以下是解决方案。
对于 Java 6:
将以下罐子添加到 {JAVA_HOME}/jre/lib/ext 中。
1. bcprov-ext-jdk15on-154.jar
2. bcprov-jdk15on-154.jar
将 属性 添加到 {JAVA_HOME}/jre/lib/security/java.security
security.provider.1=org.bouncycastle.jce.provider.BouncyCastleProvider
Java 7:download jar 从下方 link 添加到 {JAVA_HOME}/jre/lib/security
http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
Java 8:download 罐子从下面 link 添加到 {JAVA_HOME}/jre/lib/security http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
问题是无法解密 256 位加密。
我在两天内尝试了很多选项后发布了这个问题。以下是我尝试过的选项。
- 禁用 ssl 证书验证
- 通过从浏览器下载 crt 并转换为 .jks 并导入密钥库。
我仍然遇到这个问题,非常感谢任何帮助。
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1943)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1059)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1294)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1321)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1305)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:523)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1296)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at com.honeywell.sensibo.api.NewMain.main(NewMain.java:73)
我最近遇到了类似的错误,因为最近 JDK s(和浏览器,以及 Linux TLS 堆栈等)拒绝与我客户公司网络中的某些服务器通信。这是因为该网络中的某些服务器仍然具有 SHA-1 证书。
请看: https://www.entrust.com/understanding-sha-1-vulnerabilities-ssl-longer-secure/ https://blog.qualys.com/ssllabs/2014/09/09/sha1-deprecation-what-you-need-to-know
如果这是您当前的情况(最近的 JDK 与弃用的证书加密),那么您最好的举措是 将您的网络更新为正确的加密技术 。
如果您应该为此提供暂时的解决方案,请查看另一个答案以了解如何让您的 JDK 信任或不信任某些加密算法:
无论如何,我坚持认为,如果我猜对了你的问题,这不是解决问题的好方法,你的网络管理员应该考虑删除这些已弃用的证书并获得一个新证书。
问题已解决。!!!以下是解决方案。
对于 Java 6: 将以下罐子添加到 {JAVA_HOME}/jre/lib/ext 中。 1. bcprov-ext-jdk15on-154.jar 2. bcprov-jdk15on-154.jar
将 属性 添加到 {JAVA_HOME}/jre/lib/security/java.security security.provider.1=org.bouncycastle.jce.provider.BouncyCastleProvider
Java 7:download jar 从下方 link 添加到 {JAVA_HOME}/jre/lib/security http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
Java 8:download 罐子从下面 link 添加到 {JAVA_HOME}/jre/lib/security http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
问题是无法解密 256 位加密。