修复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)以识别SSL错误签名,如PKIX失败、SSLHandshakeException或缺少密钥库密码。

  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