エンドポイントURLにIPアドレスが含まれていると、Javaアプリケーションがhttps SSL接続を使用してサードパーティアプリケーションに接続できました。 のIPアドレスがホスト名に変更されたとき、私は"SSLハンドシェイク例外"を取得しています。 これ以外にも、コードの更新やその他の変更はありませんでした。 実行されたことは、第三者がIPアドレスの代わりにエンドポイントURLでホスト名を使用しているという変更のみです。httpsで接続中のSSLハンドシェイク例外
以前のURL:https://10.0.0.1:5368/invoke/Upload.Accept/receiveReply 現在URL:https://service.serviceprovider.com:5368/invoke/Upload.Accept/receiveReply
この原因とどのようにそれを修正することです何任意のアイデア?
詳細が必要な場合は教えてください。以下は
は、エラーのスタックトレースです:
javax.net.ssl.SSLHandshakeException: Could not generate secret
at sun.security.ssl.DHCrypt.getAgreedSecret(DHCrypt.java:219)
at sun.security.ssl.ClientHandshaker.serverHelloDone(ClientHandshaker.java:1056)
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:348)
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1026)
at sun.security.ssl.Handshaker.process_record(Handshaker.java:961)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:153)
at com.etsalat.adapter.sadad.PaymentLoadAdapter.run(PaymentLoadAdapter.java:130)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.security.NoSuchAlgorithmException: TlsPremasterSecret SecretKeyFactory not available
at javax.crypto.SecretKeyFactory.<init>(SecretKeyFactory.java:122)
at javax.crypto.SecretKeyFactory.getInstance(SecretKeyFactory.java:160)
at iaik.security.dh.DHKeyAgreement.engineGenerateSecret(Unknown Source)
at javax.crypto.KeyAgreement.generateSecret(KeyAgreement.java:648)
at sun.security.ssl.DHCrypt.getAgreedSecret(DHCrypt.java:217)
:詳細については、
はを参照してください。新しいURLの新しい証明書を発行する必要があるURLを変更し、その証明書を使用するようにアプリケーションを構成する場合は、特定のURLに対してSSL証明書が発行されます。 –
私はあなたが単に変更することができないことを意味しました... –
@OleksandrShpotaそれは '秘密を生成することはできません。ハンドシェイクが 'ServerHelloDone'まで届くと、証明書は受け入れられました。 – EJP