javax.net.ssl.SSLHandshakeException:收到致命警报:握手失败
我在两天内尝试了很多选择之后,发布了这个问题。下面是我尝试过的选项javax.net.ssl.SSLHandshakeException:收到致命警报:握手失败,java,jakarta-ee,ssl-certificate,Java,Jakarta Ee,Ssl Certificate,我在两天内尝试了很多选择之后,发布了这个问题。下面是我尝试过的选项 禁用ssl证书验证 通过从浏览器下载crt并转换为.jks并导入密钥库 尽管如此,我还是收到了这个问题,任何帮助都非常感谢 javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) at sun.security.s
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(和浏览器,以及Linux TLS堆栈等)拒绝与客户公司网络中的某些服务器通信。这是因为此网络中的某些服务器仍然具有SHA-1证书 请参阅: 如果这是您当前的情况(最近的JDK与不推荐的证书加密),那么您最好的做法是将您的网络更新到适当的加密技术 如果您应该为此提供临时解决方案,请参阅其他答案,了解如何使您的JDK信任或不信任某些加密算法:
无论如何,我坚持认为,如果我猜对了你的问题,这不是一个很好的解决方案,你的网络管理员应该考虑删除这些不受欢迎的证书,并得到一个新的。< /P> < P>问题解决!!!!!以下是解决方案 对于Java 6: 将下面的JAR添加到{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 Java7:从下面的链接下载jar并添加到{Java_HOME}/jre/lib/security Java8:从下面的链接下载jar并添加到{Java_HOME}/jre/lib/security
问题是它无法解密256位加密。你好,Jorge,因为我正在运行独立程序,尝试了第二个选项。还是不走运。使用Java 1.7.0_02.0尝试使用1.7.0_80,如上面链接中所建议的。没有运气。!!!我希望它能与1.7.0_02而不是1.7.0_80一起工作。这两次失败可能意味着我的猜测完全错误,而你的问题则不同。你试过另一个测试吗?例如,尝试创建有问题的URL或使用最新版本的Chrome访问它,以查看其他SSL堆栈是否可以处理它。Yeah Jorge,URL在Chrome、Posters、J-meter、SoapUI上运行绝对正常。影响我有一个python客户端,它工作绝对没有问题。但只有Java客户端失败了。好的,在这种情况下,我会尝试放弃一些东西。您是否确定将证书导入密钥库的过程?您是如何告诉Java使用该密钥库的?您可以尝试直接将证书导入$JAVA_HOME/jre/lib/security/cacerts,以确保JDK正在使用证书。如果成功的话,我们可以撤销该测试,并将重点放在将.jks文件导入应用程序的方式上。maznig和mos有用的解决方案这似乎确实解决了问题。我不知道是要在Oracle还是Sourceforge上翻白眼。我的问题是Eclipse无法下载Jaspersoft Studio插件更新和PMD插件更新,这两个更新都是从SourceForge下载站点下载的。我是从这里被指出来的。在Windows 10中执行了确切的步骤,但没有运气。64位在Windows 10上,我必须同时执行Win7和security.provider步骤。我还必须用管理员凭据一步一步地复制JAR。@frostmann嗯,我有(内存…告诉我我做了什么…)在Windows7上执行
BouncyCastleProvider
步骤和Java8步骤。希望能有所帮助,这些问题似乎很难解决。问题和这里一样:答案如下(维克的答案)