2日間から多くのオプションを試した後、この質問を投稿しています。以下は私が試したオプションです。
それでも私はこの問題を受け取っています、どんな助けでも前もって非常に感謝します。
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)
問題は解決された。!!!以下は解決策です。
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に追加します
Java 7:以下のリンクからjarをダウンロードし、{Java_HOME}/jre/lib/securityに追加します http://www.Oracle.com/technetwork/Java/javase/downloads/jce-7-download-432124。 html
Java 8:以下のリンクからjarをダウンロードし、{Java_HOME}/jre/lib/securityに追加します http://www.Oracle.com/technetwork/Java/javase/downloads/jce8-download-2133166.html
問題は、256ビットの暗号化の解読に失敗することです。
最近のJDK(およびブラウザ、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サーバーがtls 1.2のみを受け入れ、tls 1.0およびtls 1.1接続を拒否する方法
とにかく、あなたの問題を適切に推測した場合、これは問題の良い解決策ではなく、ネットワーク管理者はこれらの非推奨の証明書を削除して新しい証明書を取得することを検討する必要があると主張します。