要求されたターゲットへの有効な証明書パスが見つかりません - 証明書をインポートした後でもエラーが発生します 質問する

要求されたターゲットへの有効な証明書パスが見つかりません - 証明書をインポートした後でもエラーが発生します 質問する

自己署名証明書を使用してサーバーにアクセスしようとしている Java クライアントがあります。

サーバーに投稿しようとすると、次のエラーが発生します。

要求されたターゲットへの有効な認証パスが見つかりません

この問題について少し調査した後、私は次のことを行いました。

  1. サーバーのドメイン名をroot.cerファイルとして保存しました。

  2. 私の Glassfish サーバーの JRE では、これを実行しました:

    keytool -import -alias example -keystore cacerts -file root.cer
    
  3. 証明書が cacert に正常に追加されたことを確認するために、次の操作を実行しました。

    keytool -list -v -keystore cacerts
    

    証明書が存在していることがわかります。

  4. その後、Glassfish を再起動して「投稿」を再試行しました。

まだ同じエラーが発生します。

cacertこれは、Glassfish が実際には私が修正したファイルではなく、おそらく他のファイルを読み取っているためではないかと感じています。

この問題に遭遇した方、私を正しい方向に導いてくれる方はいらっしゃいますか?

ベストアンサー1

残念ながら、原因はさまざまですが、多くのアプリケーション サーバーやその他の Java ラッパーは、プロパティやキーチェーンに対する独自の解釈などを操作する傾向があります。そのため、まったく異なるものを検討している可能性があります。

トラスを組む以外に、次のことを試してみます:

java -Djavax.net.debug=all -Djavax.net.ssl.trustStore=trustStore ...

それが役立つかどうかを確認してください。 'all' の代わりに 'ssl'、キー マネージャー、および信頼マネージャーに設定することもできます。これは、あなたのケースに役立つ可能性があります。 'help' に設定すると、ほとんどのプラットフォームで以下のようなリストが表示されます。

いずれにせよ、キーストア (自分の ID を証明する秘密鍵と証明書が格納されているストア) と信頼ストア (誰を信頼するかを決定するストア) の違いを完全に理解し、自分の ID にもルートへの信頼の「チェーン」があること (これは、信頼する「相手」を判断するために必要なルートへのチェーンとは別のものである) を理解してください。

all            turn on all debugging
ssl            turn on ssl debugging

The   following can be used with ssl:
    record       enable per-record tracing
    handshake    print each handshake message
    keygen       print key generation data
    session      print session activity
    defaultctx   print default SSL initialization
    sslctx       print SSLContext tracing
    sessioncache print session cache tracing
    keymanager   print key manager tracing
    trustmanager print trust manager tracing
    pluggability print pluggability tracing

    handshake debugging can be widened with:
    data         hex dump of each handshake message
    verbose      verbose handshake message printing

    record debugging can be widened with:
    plaintext    hex dump of record plaintext
    packet       print raw SSL/TLS packets

出典: # 参照http://download.oracle.com/javase/1.5.0/docs/guide/security/jsse/JSSERefGuide.html#デバッグ

おすすめ記事