Проблема аутентификации ovirt-provider-ovn на engine SSO
1. Проблема
После замены сертификата веб-портала не работает раздел управляемых сетей (
), не отображаются сети и другие сущности, не создаются новые сети, возникает ошибка:Ошибка создания сети: "Внутрисистемная ошибка при получении списка логических сетей: HTTPSConnectionPool(host='engine.local', port=443): Max retries exceeded with url: /ovirt-engine/sso/oauth/token-info (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:897)'),))"
В логах сервиса ovirt-provider-ovn присутствуют следующие события:
root HTTPSConnectionPool(host='engine.local', port=443): Max retries exceeded with url: /ovirt-engine/sso/oauth/token-info (Caused by SSLError(SSLError(1, '[SSL: CERTI FICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:897)'),))
Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/urllib3/connectionpool.py", line 600, in urlopen chunked=chunked)
File "/usr/lib/python3.6/site-packages/urllib3/connectionpool.py", line 343, in _make_request self._validate_conn(conn)
File "/usr/lib/python3.6/site-packages/urllib3/connectionpool.py", line 839, in _validate_conn conn.connect()
File "/usr/lib/python3.6/site-packages/urllib3/connection.py", line 358, in connect ssl_context=context)
File "/usr/lib/python3.6/site-packages/urllib3/util/ssl_.py", line 354, in ssl_wrap_socket return context.wrap_socket(sock, server_hostname=server_hostname)
File "/usr/lib64/python3.6/ssl.py", line 365, in wrap_socket _context=self, _session=session)
File "/usr/lib64/python3.6/ssl.py", line 776, in __init__ self.do_handshake()
File "/usr/lib64/python3.6/ssl.py", line 1036, in do_handshake self._sslobj.do_handshake()
File "/usr/lib64/python3.6/ssl.py", line 648, in do_handshake self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:897)
2. Решение
Проблема возникает, если сертификат веб-портала подписан промежуточным CA-сертификатом и в файле /etc/pki/ovirt-engine/apache-ca.pem отсутствует полная цепочка до корневого CA-сертификата.
Для решения проблемы необходимо скомпоновать файл /etc/pki/ovirt-engine/apache-ca.pem согласно инструкции (цепочка сертификатов должна заканчиваться корневым самоподписанным сертификатом) и выполнить перезапуск сервиса httpd:
systemctl restart httpd