3

weblogic 内で https サービス コールを呼び出そうとすると、ssl ハンドシェイク エラーが発生します。サーバー証明書を weblogic トラスト ストア "cacerts" に追加しました。

トラスト ストアを weblogic 起動スクリプトに追加するために使用するコマンド:

     JAVA_OPTIONS="-Dweblogic.security.SSL.trustedCAKeyStore="/weblogic92/server/lib/cacerts" ${JAVA_OPTIONS}"

JAVA_OPTIONS のエクスポート

他に何か不足していますか - この問題を解決するための指針はありますか?

SSLPoke.java を使用してアプリ サーバー ボックス内の SSL 接続をテストし、成功しました。

   java -Djavax.net.ssl.trustStore=/weblogic92/server/lib/cacerts 
   -Djavax.net.ssl.trustStorePassword=changeit SSLPoke 192.16.2.6 8443

Weblogic サーバー ログ トレース:

       javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1628)
    at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:230)
    at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:224)
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1027)
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:120)
    at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:574)
    at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:510)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:888)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1117)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:629)
    at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
4

3 に答える 3

1

あなたが試すことができる他のいくつかのことがあります:

  1. JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.security.SSL.trustedCAKeyStore=/weblogic92/server/lib/cacerts" も試しましたか

  2. コンソールを使用して証明書を追加してみてください (servers->server_name->keystores)

  3. 次の Java オプションを追加する必要がある場合もあります。

    1. -Dweblogic.security.SSL.verbose=true

    2. -Dweblogic.security.SSL.enable.renegotiation=true

    3. -Dsun.security.ssl.allowUnsafeRenegotiation=true

  4. サーバー -> サーバー名 -> SSL (詳細) で、JSSE SSL を使用するにチェックを入れます。

  5. サーバー証明書を使用するにチェックを入れます。

  6. ホスト名の検証をなしに変更

于 2013-07-08T09:58:19.560 に答える
0

引用符の問題です。無意味な内側の引用符を削除します。

JAVA_OPTIONS="-Dweblogic.security.SSL.trustedCAKeyStore=/weblogic92/server/lib/c‌​acerts ${JAVA_OPTIONS}"
于 2016-03-12T02:17:44.533 に答える