не удалось найти действительный путь сертификации для запрошенной цели на oVirt

Вчера я установил последнюю версию CentOS 7. Чистая установка. И я следую этому руководству: https://www.ovirt.org/documentation/install-guide/chap-Installing_oVirt.html

Единственное отличие в том, что я настроил httpd listen 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

Я пробовал много решений, но никто не работал.

try_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 не работает.

try_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 /, но он все равно не работает.

https: // i.imgur.com/ZME9n6q.png[12129pting

0
задан 26 December 2018 в 20:50
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
  • /tmp/apache.p12 -> Сертификат и закрытый ключ
  • / tmp / apache .cer -> Только сертификат
  • /tmp/apache.key -> Только закрытый ключ

И дважды проверьте свой CA и корень 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" и получите правильные.

Я не знаю, какое решение вы используете, потому что его можно использовать для внешних и внутренних соединений через веб-сокеты.

0
ответ дан 5 December 2019 в 04:46

Теги

Похожие вопросы