修正AEM Forms中的PKIX和SSL設定問題

由於缺少憑證、金鑰存放區設定錯誤或SSL連線埠設定錯誤,AEM Forms無法透過SSL通訊。 透過驗證憑證鏈、更新JVM信任存放區以及更正JBoss或WebSphere中的SSL設定來修正問題。

說明 description

環境

  • AEM Forms (JEE和OSGi)
  • Jboss
  • WebSphere
  • Adobe Managed Services (AMS)
  • 內部部署環境

問題/症狀

  • javax.net.ssl.SSLHandshakeException: PKIX路徑建置失敗: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
  • java.sql.SQLRecoverableException: IO Error PKIX路徑建置失敗。
  • JBoss EJB呼叫失敗,因為SSL停用或不完整的組態: remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
  • AEM啟動失敗,其中SSL設定精靈會要求金鑰存放區名稱/密碼且無法繼續。

解決方法 resolution

若要解決此問題,請遵循下列步驟:

  1. 檢閱standalone/log/server.logSystemOut.log之類的記錄檔,以識別PKIX失敗、SSLHandshakeException或遺失金鑰儲存庫密碼等SSL錯誤簽章。

  2. 確認錯誤參考憑證信任或金鑰存放區載入問題。

  3. 擷取伺服器憑證及其完整鏈結,包括伺服器、中繼和根CA憑證,並確保憑證符合記錄中觀察到的主機名稱。

  4. 使用keytool將遺失的憑證匯入位於JAVA_HOME/lib/security/cacerts的JVM信任存放區,並透過列出別名來驗證安裝。 確保使用正確的金鑰庫路徑和密碼。

    keytool -importcert -alias <alias> -file <certfile.pem> -keystore <JAVA_HOME>/lib/security/cacerts

  5. 重新啟動JBoss或WebSphere以重新載入信任存放區,並驗證啟動期間不再出現SSL錯誤。

  6. 重新執行失敗的作業,例如資料庫連線或HTTPS呼叫。

  7. 如果SSL設定精靈要求金鑰存放區輸入但密碼不明,請提供新的檔案名稱、金鑰存放區密碼和金鑰密碼,以建立新的金鑰存放區。

  8. 確認組態目錄中存在金鑰儲存庫檔案。

  9. 驗證standalone.xmldomain.xml中的JBoss HTTPS接聽程式組態。

  10. 請確定SSLRealm和HTTPS接聽程式存在且正確載入,而不會發生錯誤。

  11. 針對與資料庫相關的SSL錯誤,尤其是使用encrypt=true;trustServerCertificate=false的SQL Server,請將資料庫憑證匯入信任存放區或暫時設定trustServerCertificate=true

  12. 驗證資料來源測試是否成功。

  13. 如果錯誤與連線埠8443有關,請檢查EJB SSL組態。

  14. 請確定已啟用並正確設定EJB流量的SSL,並確認不會再發生呼叫錯誤。

  15. 重新測試原始的失敗操作,並確認記錄檔不包含SSLHandshakeException或相關的錯誤。

如果問題仍然存在,請使用openssl比較憑證並驗證信任存放區專案,以執行更深入的驗證。

相關閱讀

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