遺失或不受信任的憑證所導致的AEM SSL憑證驗證錯誤

當Adobe Experience Manager (AEM)執行階段、AEM信任存放區或本機開發環境不信任遠端伺服器憑證鏈時,()輸出HTTPS和mTLS連線會失敗。 當缺少必要的根或中間憑證、憑證鏈不完整、SSL攔截引入不受信任的憑證,或Java升級後信任關係變更時,會發生此問題。 若要解決此問題,請驗證憑證、更新信任存放區以及驗證連線。

說明 description

環境

Adobe Experience Manager as a Cloud Service (AEMaaCS)

問題/症狀

  • 應用程式記錄檔顯示​javax.net.ssl.SSLHandshakeException: PKIX路徑建置失敗,表示Java無法建置遠端端點的信任憑證路徑。
  • 本機開發工具,例如aio CLI或節點擷取顯示SELF_SIGNED_CERT_IN_CHAIN,表示SSL鏈結中存在不受信任的憑證。
  • 在存取保全端點時,瀏覽器會顯示​您的連線不是私人的,因為憑證鏈結不完整。
  • 本機開發環境顯示​無法取得本機簽發者憑證,這表示本機信任存放區不信任憑證鏈結。
  • 即使金鑰存放區組態顯示正確,傳出mTLS呼叫也會失敗。

根本原因

發生此問題的原因是AEM或基礎Java執行階段不信任遠端伺服器憑證鏈。 缺少根或中間憑證授權單位、憑證上傳不完整、SSL檢查代理程式、Java信任存放區變更和本機SDK信任驗證失敗會阻礙成功的SSL交握驗證。

解決方法 resolution

請依照下列步驟來識別和解決SSL憑證信任問題:

  1. 檢閱AEM記錄檔、Cloud Manager CLI輸出、JVM棧疊追蹤或本機開發記錄檔,以識別憑證驗證錯誤,例如​PKIX路徑建置失敗或SELF_SIGNED_CERT_IN_CHAIN
  2. 執行openssl s_client -showcerts -connect <host>:443以擷取遠端伺服器憑證鏈結,並確認鏈結中的所有憑證都已傳回。
  3. 透過識別問題是否由缺少憑證、鏈結不完整、SSL攔截、瀏覽器信任問題或本機開發信任驗證失敗所導致,來判斷失敗類別。
  4. 將遺失的根憑證和中間憑證新增至AEM信任存放區。 若為AEM as a Cloud Service,請透過全域信任存放區匯入憑證。 對於AMS或內部部署環境,請使用keytool將憑證匯入Java信任存放區。
  5. 當瀏覽器憑證警告指出鏈不完整時,上傳包含分葉、中間和根憑證的完整憑證鏈。
  6. 將所需的公司CA憑證新增至本機作業系統或Node.js信任存放區,以解決本機開發憑證問題。
  7. 在AMS或內部部署環境中進行信任存放區更新後,重新啟動AEM執行個體或Java程式,以便更新的憑證成功載入。
  8. 使用SSLPoke或應用程式層級API呼叫來驗證輸出連線,並驗證SSL交握不再發生失敗。
  9. 透過確認輸出連線成功、SSLHandshakeException錯誤不再出現在記錄中,以及憑證驗證成功完成來驗證解決方案。

何時上報

  • 即使信任存放區包含必要的憑證,SSL交握失敗仍會繼續發生。
  • 憑證鏈結似乎已完成,但輸出連線仍會失敗。
  • 無法在該環境中驗證或信任SSL檢查或Proxy憑證。
  • 在信任庫更新和連線驗證後,輸出SSL驗證仍舊失敗。

相關閱讀

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