2017-08-02 7 views
0

ウェブサイト。JavaのSSLの握手_問題

Common Name (CN) Go Daddy Secure Certificate Authority - G2 
Organisation (O) GoDaddy.com, Inc. 
Organisational Unit (OU) http://certs.godaddy.com/repository/ 

私はこれがインストールされているJavaのバージョンである私のjavaディレクトリにcacertsで同じ詳細

keytool -list -keystore /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.101-3.b13.24.amzn1.x86_64/jre/lib/security/cacerts | grep godaddy 

godaddyclass2ca, 23 Sep, 2016, trustedCertEntry, 
godaddyrootcertificateauthority-g2, 23 Sep, 2016, trustedCertEntry, 

チェック:私も、ブラウザから証明書をダウンロードしてインポート

openjdk version "1.8.0_101" 
OpenJDK Runtime Environment (build 1.8.0_101-b13) 
OpenJDK 64-Bit Server VM (build 25.101-b13, mixed mode) 

それにcacerts

keytool -import -keystore cacerts -file test.cer 

私はそれをデバッグするのを助けてください。

+0

例外として、これはあなたの証明書の信頼パスが正しく検証されている可能性があることを意味する 'SSL例外 'のようには見えません。しかし、プロトコルの不一致やホスト名が証明書と一致しないなどの理由により、接続が失敗する可能性があります。サーバーでサポートされているプロトコルをチェックすることは可能ですか?あなたはJava 8を使っているので、あなたのクライアントは 'tlsv2'を使っているはずです。 –

+2

-Djavax.net.debug = allを実行して、何のプロトコル手順が失敗するかを調べる – mtraut

+0

私は別の[スレッド](https://stackoverflow.com/a/6353956/8101556)を見つけました。これは役に立ちます。 –

答えて

0

JVMのJCE拡張機能をインストールする必要があります。基本的にこの問題は、ローカルJavaとhttpsサイトの間の不一致暗号が原因です。

使用https://www.ssllabs.com/あなたのREST APIは、Javaをサポートしているかどうかを確認するために、check this image example

、それはこのように表示されている場合、あなたはhttp://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.htmlからファイルをダウンロードすることができますが。完了したら、JREのlib/securityディレクトリにある2つのJAR(local_policy.jar、US_export_policy.jar)を、ダウンロードしたパッケージのものと置き換えます。

詳細については、詳細をご確認ください。

ここで解決策をチェックすると、ちょうど疲れたHow to debug the ssl connection error、それは私のために働いて、私の一日を節約!

+0

この質問のポスターは、Oracle(および以前のSun)の暗号強度の制限 'feature'を一度も含んでいない** OpenJDK **を使用しています。**はOracleポリシー 'upgrade' **を必要としません。 JCEはインストールされません; JCEはすでにJREの一部です.JCE _policy_のみをインストールします)。暗号のミスマッチは、強度の制限以外の多くの理由で発生する可能性があり、ハンドシェイクの失敗は、暗号のミスマッチ以外の多くの理由で発生する可能性があります。上のコメントにリンクされているhttps://stackoverflow.com/questions/6353849/received-fatal-alert-handshake-failure-(already)はそれらのいくつかを示しています。 –