修复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)以识别SSL错误签名,如PKIX失败、SSLHandshakeException或缺少密钥库密码。 -
确认错误引用了证书信任或密钥库加载问题。
-
提取服务器证书及其完整链,包括服务器、中间和根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比较证书并验证信任库条目来执行更深入的验证。