我昨天安装了最新的 CentOS 7。干净安装。我遵循本教程: https ://www.ovirt.org/documentation/install-guide/chap-Installing_oVirt.html
唯一不同的是我为 http 配置了 httpd listen 1080,为 https 配置了 1443。因为我之前安装了nginx。如果主机名正确,我将 nginx 重定向 443 配置为 1443 端口。
但在“连接到管理门户”步骤中,出现错误:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
https://i.imgur.com/bnTwTDK.png
我尝试了很多解决方案,但没有一个有效。
尝试解决方案_1:
cat /etc/ovirt-engine/engine.conf.d/99-custom-truststore.conf
ENGINE_HTTPS_PKI_TRUST_STORE="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre/lib/security/cacerts"
ENGINE_HTTPS_PKI_TRUST_STORE_PASSWORD="changeit"
https://i.imgur.com/uAbJmfn.png 不起作用。
尝试解决方案_2:
手动将证书添加到密钥库:
for f in *.pem; do keytool -import -trustcacerts -keystore /etc/pki/java/cacerts -storepass changeit -alias "$f" -import -file "$f"; done
for f in *.cer; do keytool -import -trustcacerts -keystore /etc/pki/java/cacerts -storepass changeit -alias "$f" -import -file "$f"; done
for f in *.der; do keytool -import -trustcacerts -keystore /etc/pki/java/cacerts -storepass changeit -alias "$f" -import -file "$f"; done
#/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre/lib/security/cacerts is linked to /etc/pki/java/cacerts
我在 /etc/pki/ovirt-engine/ 下的任何地方都运行此脚本,但它仍然无法正常工作。
我使用 oVirt 进行了全新安装并安装了我自己的证书,无论如何我遇到了与您相同的错误并设法以这种方式解决它。
重要的是要说您在此命令中看到的文件,我假设您像 oVirt 文档中的附录 D 一样创建了它们。
在附录末尾,在重新启动服务之前,执行以下命令:
请注意,“-storepass”是默认设置,显然如果您有密码,您应该输入自己的商店密码。
然后重新启动服务,它对我有用。
编辑:
如果您要使用商业证书,请确保您有以下文件,其附录名称如下:
并仔细检查与您的 CA 证书匹配的 CA 和 CA Root,如下所示:
请注意,在“i:”字段(颁发者字段)中,CN(通用名称)匹配下一个证书,如果不是这样,请检查文件“/tmp/3rd-party-ca-cert.pem "并得到正确的。
我不知道您使用的是哪种解决方案,因为它可用于外部和内部 websocket 连接。