SSL 握手失败 java.security.cert.CertPathValidatorException:证书链接错误
SSL Handshake Failure java.security.cert.CertPathValidatorException: Certificate chaining error
我已经使用 Open Liberty 创建了一个 Docker 图像,并将我的自定义应用程序作为 Web 应用服务托管在 Azure 中。一切正常,除非我尝试访问托管在 Azure 上的另一个控制器(https://mycontrollerurl.azurewebsites.net/...。)我确实从日志中看到错误:-
[错误] CWPKI0022E:SSL 握手失败:从目标主机发送了带有 SubjectDN CN=*.azurewebsites.net 的签名者。签名者可能需要添加到本地信任库 /opt/ol/wlp/output/defaultServer/resources/security/key.p12,位于 SSL 配置别名 defaultSSLConfig 中。来自 SSL 握手异常的扩展错误消息是:PKIX 路径构建失败:java.security.cert.CertPathBuilderException:PKIXCertPathBuilderImpl 无法构建有效的 CertPath。内部原因是:
2019-04-27T15:44:49.047295297Z java.security.cert.CertPathValidatorException: CN=Baltimore CyberTrust Root, OU=CyberTrust, O=Baltimore, C=IE 颁发的证书不受信任;内部原因是:
有人可以帮助我创建 SERVER.xml 文件以包含证书和我需要执行的任何其他步骤吗?我只是 2 天大的 Liberty 新手,正试图为我的开发团队解决这个问题。你能告诉我如何解决这个 CERT 问题吗?
更新:问题已解决(感谢 Bruce 指出我的意见):-
1. 我必须下载 azurewebsite 证书(非常简单,只需从浏览器下载)你可以从这里的文章中获得所有步骤
2. 将 Azurewebsites Certficate 文件保存到与我的 DOCKERFILE 相同的目录中。
3. 修改我的 DOCKERFILE 如下:-
++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++
来自开放自由:webProfile8
复制 --chown=1001:0 server.xml /config/
复制 --chown=1001:0 ancConnector-Liberty.war /config/dropins/
# 添加 Azure 证书以启用 HTTPS 连接。
复制 --chown=1001:0 azurewebsites.cer
opt/ol/wlp/output/defaultServer/resources/security/
WORKDIR /opt/ol/wlp/output/defaultServer/resources/security/
运行 keytool -noprompt -importcert -file azurewebsites.cer -别名
azurewebsites -keystore key.jks -storepass Liberty -storetype jks`
++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++
就是这样,构建图像,我们就可以开始了!现在一切正常!希望对以后的人有帮助。
您需要将来自 azure 的签名者证书添加到 Liberty 的信任库文件中,以便 "trust" 该站点。过程在这里:
我已经使用 Open Liberty 创建了一个 Docker 图像,并将我的自定义应用程序作为 Web 应用服务托管在 Azure 中。一切正常,除非我尝试访问托管在 Azure 上的另一个控制器(https://mycontrollerurl.azurewebsites.net/...。)我确实从日志中看到错误:-
[错误] CWPKI0022E:SSL 握手失败:从目标主机发送了带有 SubjectDN CN=*.azurewebsites.net 的签名者。签名者可能需要添加到本地信任库 /opt/ol/wlp/output/defaultServer/resources/security/key.p12,位于 SSL 配置别名 defaultSSLConfig 中。来自 SSL 握手异常的扩展错误消息是:PKIX 路径构建失败:java.security.cert.CertPathBuilderException:PKIXCertPathBuilderImpl 无法构建有效的 CertPath。内部原因是: 2019-04-27T15:44:49.047295297Z java.security.cert.CertPathValidatorException: CN=Baltimore CyberTrust Root, OU=CyberTrust, O=Baltimore, C=IE 颁发的证书不受信任;内部原因是:
有人可以帮助我创建 SERVER.xml 文件以包含证书和我需要执行的任何其他步骤吗?我只是 2 天大的 Liberty 新手,正试图为我的开发团队解决这个问题。你能告诉我如何解决这个 CERT 问题吗?
更新:问题已解决(感谢 Bruce 指出我的意见):- 1. 我必须下载 azurewebsite 证书(非常简单,只需从浏览器下载)你可以从这里的文章中获得所有步骤 2. 将 Azurewebsites Certficate 文件保存到与我的 DOCKERFILE 相同的目录中。 3. 修改我的 DOCKERFILE 如下:- ++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++ 来自开放自由:webProfile8 复制 --chown=1001:0 server.xml /config/ 复制 --chown=1001:0 ancConnector-Liberty.war /config/dropins/ # 添加 Azure 证书以启用 HTTPS 连接。 复制 --chown=1001:0 azurewebsites.cer opt/ol/wlp/output/defaultServer/resources/security/ WORKDIR /opt/ol/wlp/output/defaultServer/resources/security/ 运行 keytool -noprompt -importcert -file azurewebsites.cer -别名 azurewebsites -keystore key.jks -storepass Liberty -storetype jks` ++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++
就是这样,构建图像,我们就可以开始了!现在一切正常!希望对以后的人有帮助。
您需要将来自 azure 的签名者证书添加到 Liberty 的信任库文件中,以便 "trust" 该站点。过程在这里: