証明書が見つからないか信頼できない場合に発生するAEM SSL証明書の検証エラー

Adobe Experience Manager(AEM)のアウトバウンド HTTPSおよびmTLS接続は、Java ランタイム、AEM トラストストア、またはローカル開発環境がリモートサーバー証明書チェーンを信頼しない場合に失敗します。 この問題は、必要なルート証明書または中間証明書が見つからない、証明書チェーンが不完全である、SSL傍受によって信頼できない証明書が導入される、またはJavaのアップグレード後に信頼関係が変更される場合に発生します。 この問題を解決するには、証明書の検証、トラストストアの更新、および接続性の検証を行います。

説明 description

環境

Adobe Experience Manager as a Cloud Service (AEMaaCS)

問題/症状

  • アプリケーションログに「javax.net.ssl.SSLHandshakeException: PKIX パスの構築に失敗しました」と表示され、Javaがリモートエンドポイントへの信頼できる証明書パスを構築できないことを示します。
  • aio CLIやnode-fetchなどのローカル開発ツールにはSELF_SIGNED_CERT_IN_CHAINが表示され、信頼されていない証明書がSSL チェーンに存在することを示します。
  • 証明書チェーンが不完全なため、保護されたエンドポイントにアクセスすると、ブラウザーに​ 接続がプライベートではありません ​と表示されます。
  • ローカル開発環境に「ローカル発行者証明書を取得できません」と表示され、ローカルのトラストストアが証明書チェーンを信頼していないことが示されます。
  • キーストア設定が正しく表示された場合でも、送信mTLS呼び出しは失敗します。

根本原因

この問題は、AEMまたは基盤となるJava ランタイムがリモートサーバー証明書チェーンを信頼しないために発生します。 ルートまたは中間の証明書機関が見つからない、不完全な証明書のアップロード、SSL インスペクションプロキシ、Java トラストストアの変更、ローカル SDKのトラストストア検証エラーは、SSL ハンドシェイク検証の失敗を防ぎます。

解決策 resolution

SSL証明書の信頼性の問題を特定して解決するには、次の手順に従います。

  1. PKIX パスの構築に失敗したメッセージやSELF_SIGNED_CERT_IN_CHAIN​などのメッセージについて、AEM ログ、Cloud Manager CLI出力、JVM スタックトレース、またはローカル開発ログを確認して、証明書検証エラーを特定します。
  2. openssl s_client -showcerts -connect <host>:443を実行してリモート サーバー証明書チェーンを展開し、チェーン内のすべての証明書が返されることを確認します。
  3. 証明書の欠落、不完全なチェーン、SSL インターセプト、ブラウザーのトラストの問題、ローカル開発のトラスト検証エラーのいずれが問題の原因であるかを特定して、エラーのカテゴリを判断します。
  4. 見つからないルート証明書と中間証明書をAEM トラストストアに追加します。 AEM as a Cloud Serviceの場合は、Global Truststoreを通じて証明書を読み込みます。 AMS環境またはオンプレミス環境の場合は、キーツールを使用して証明書をJava トラストストアに読み込みます。
  5. ブラウザーベースの証明書の警告が不完全なチェーンを示す場合は、リーフ証明書、中間証明書、ルート証明書を含む完全な証明書チェーンをアップロードします。
  6. 必要な会社CA証明書をローカルオペレーティングシステムまたはNode.js トラストストアに追加して、ローカル開発証明書の問題を解決します。
  7. AMSまたはオンプレミス環境でトラストストアを更新した後、更新された証明書が正常に読み込まれるように、AEM インスタンスまたはJava プロセスを再起動します。
  8. SSLPokeまたはアプリケーションレベルのAPI呼び出しを使用してアウトバウンド接続を検証し、SSL ハンドシェイクのエラーが発生しなくなったことを確認します。
  9. 送信の接続が成功し、SSLHandshakeException エラーがログに表示されなくなり、証明書の検証が正常に完了したことを確認して、解決を検証します。

エスカレーションするタイミング

  • トラストストアに必要な証明書が含まれていても、SSL ハンドシェイクのエラーが継続します。
  • 証明書チェーンは完了しているように見えますが、送信の接続は引き続き失敗します。
  • SSL検査またはプロキシ証明書は、環境内で検証または信頼できません。
  • トラストストアの更新と接続性の検証の後、送信SSL検証は失敗したままになります。

関連トピックス

recommendation-more-help
experience-cloud-kcs-help-kbarticles