Невозможно найти действительный путь сертификации для запрашиваемой цели на oVirt
Я установил последнюю CentOS 7 вчера. Чистая установка. И я следую этому уроку: https://www.ovirt.org/documentation/install-guide/chap-Installing_oVirt.html
Единственное отличие - я настроил httpd для прослушивания 1080 для http и 1443 для https. Потому что я установил 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
Я пробовал много решений, но никто не работает.
tried_solution_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 не работает.
tried_solution_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/, но он все еще не работает.
1 ответ
У меня есть чистая установка с oVirt и я установил свои собственные сертификаты, в любом случае я получил ту же ошибку, что и вы, и мне удалось решить ее таким образом.
Важно отметить, что файлы, которые вы видите в этих командах, я предполагаю, что вы создали их, как приложение D в документации oVirt.
В конце приложения перед перезапуском служб выполните следующее:
keytool -import -trustcacerts -keystore /etc/pki/java/cacerts -storepass changeit -alias "$YOURALIAS" -import -file "/tmp/apache.cer"
Обратите внимание, что "-storepass" используется по умолчанию, очевидно, вы должны указать свой собственный пароль магазина, если он у вас есть.
Затем перезапустите сервисы, у меня сработало.
РЕДАКТИРОВАТЬ:
Если вы собираетесь использовать коммерческий сертификат, убедитесь, что у вас есть следующие файлы с такими именами приложений:
- /tmp/3rd-party-ca-cert.pem -> CA и CA Root
- /tmp/apache.p12 -> Сертификат и Закрытый ключ
- /tmp/apache.cer -> Только сертификат
- /tmp/apache.key -> Только закрытый ключ
И еще раз проверьте ваш CA и Root CA, который соответствует сертификату вашего CA, как эта цепочка:
Certificate chain
0 s:/OU=Domain Control Validated/OU=EssentialSSL Wildcard/CN=*.MYDOMAIN.com
i:/C=GB/ST=Greater Manchester/L=Salford/O=Sectigo Limited/CN=Sectigo RSA Domain Validation Secure Server CA
1 s:/C=GB/ST=Greater Manchester/L=Salford/O=Sectigo Limited/CN=Sectigo RSA Domain Validation Secure Server CA
i:/C=US/ST=New Jersey/L=Jersey City/O=The USERTRUST Network/CN=USERTrust RSA Certification Authority
2 s:/C=US/ST=New Jersey/L=Jersey City/O=The USERTRUST Network/CN=USERTrust RSA Certification Authority
i:/C=US/ST=New Jersey/L=Jersey City/O=The USERTRUST Network/CN=USERTrust RSA Certification Authority
Обратите внимание, что в поле "i:" (поле эмитента) CN (общее имя) соответствует следующему сертификату, если это не так, проверьте файл "/tmp/3rd-party-ca-cert.pem"и получите правильные.
Я не знаю, какое решение вы используете, потому что оно может быть использовано для внешних и внутренних подключений к веб-сокетам.