Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javax.net.ssl.SSLHandshakeException:收到致命警报:握手失败_Java_Jakarta Ee_Ssl Certificate - Fatal编程技术网

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

我在两天内尝试了很多选择之后,发布了这个问题。下面是我尝试过的选项

  • 禁用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(和浏览器,以及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步骤。希望能有所帮助,这些问题似乎很难解决。问题和这里一样:答案如下(维克的答案)