修正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 targetjava.sql.SQLRecoverableException: IO Error PKIX路徑建置失敗。- JBoss EJB呼叫失敗,因為SSL停用或不完整的組態:
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false - AEM啟動失敗,其中SSL設定精靈會要求金鑰存放區名稱/密碼且無法繼續。
解決方法 resolution
若要解決此問題,請遵循下列步驟:
-
檢閱
standalone/log/server.log或SystemOut.log之類的記錄檔,以識別PKIX失敗、SSLHandshakeException或遺失金鑰儲存庫密碼等SSL錯誤簽章。 -
確認錯誤參考憑證信任或金鑰存放區載入問題。
-
擷取伺服器憑證及其完整鏈結,包括伺服器、中繼和根CA憑證,並確保憑證符合記錄中觀察到的主機名稱。
-
使用keytool將遺失的憑證匯入位於
JAVA_HOME/lib/security/cacerts的JVM信任存放區,並透過列出別名來驗證安裝。 確保使用正確的金鑰庫路徑和密碼。keytool -importcert -alias <alias> -file <certfile.pem> -keystore <JAVA_HOME>/lib/security/cacerts -
重新啟動JBoss或WebSphere以重新載入信任存放區,並驗證啟動期間不再出現SSL錯誤。
-
重新執行失敗的作業,例如資料庫連線或HTTPS呼叫。
-
如果SSL設定精靈要求金鑰存放區輸入但密碼不明,請提供新的檔案名稱、金鑰存放區密碼和金鑰密碼,以建立新的金鑰存放區。
-
確認組態目錄中存在金鑰儲存庫檔案。
-
驗證
standalone.xml或domain.xml中的JBoss HTTPS接聽程式組態。 -
請確定SSLRealm和HTTPS接聽程式存在且正確載入,而不會發生錯誤。
-
針對與資料庫相關的SSL錯誤,尤其是使用
encrypt=true;trustServerCertificate=false的SQL Server,請將資料庫憑證匯入信任存放區或暫時設定trustServerCertificate=true。 -
驗證資料來源測試是否成功。
-
如果錯誤與連線埠8443有關,請檢查EJB SSL組態。
-
請確定已啟用並正確設定EJB流量的SSL,並確認不會再發生呼叫錯誤。
-
重新測試原始的失敗操作,並確認記錄檔不包含SSLHandshakeException或相關的錯誤。
如果問題仍然存在,請使用openssl比較憑證並驗證信任存放區專案,以執行更深入的驗證。