при загрузке вэб интерфейса Ovirt Engine хочется иметь доверенный ssl сертификат, в нашем случае let's encrypt, а не стандартный, который доверенный только организации. Гайд написан из-за отсутсвия мануалов по этому вопросу
Let'sEncrypt для Ovirt Engine
Всё проделанное было сделано для сайта ovirt.kurskmed.com
Первым делом устанавливаем необходимые пакеты:
yum install python2-certbot-apache --enablerepo=epel
Теперь создадим HTTP хост для работы certbot через HTTP-01:
nano /etc/httpd/conf.d/zz-non-ssl-redirect.conf
<VirtualHost *:80>
Redirect permanent / https://ovirt.kurskmed.com/
</VirtualHost>
перезапустим апач:
systemctl reload httpd
Запускаем certbot:
[root@ovirt ~]# certbot
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org
No names were found in your configuration files. Please enter in your domain
name(s) (comma and/or space separated) (Enter 'c' to cancel): ovirt.kurskmed.com
Cert not yet due for renewal
You have an existing certificate that has exactly the same domains or certificate name you requested and isn't close to expiry.
(ref: /etc/letsencrypt/renewal/ovirt.kurskmed.com.conf)
What would you like to do?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Attempt to reinstall this existing certificate
2: Renew & replace the cert (limit ~5 per 7 days)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 1
Keeping the existing certificate
Created an SSL vhost at /etc/httpd/conf.d/zz-non-ssl-redirect-le-ssl.conf
Deploying Certificate to VirtualHost /etc/httpd/conf.d/zz-non-ssl-redirect-le-ssl.conf
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 1
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://ovirt.kurskmed.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=ovirt.kurskmed.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Теперь удаляем/перемещаем наш созданный виртуальный хост:
mv /etc/httpd/conf.d/zz-non-ssl-redirect-le-ssl.conf /root/
Делаем бэкапы старых сертификатов:
[root@ovirt ~]# mv /etc/pki/ovirt-engine/apache-ca.pem /etc/pki/ovirt-engine/apache-ca.pem.bck
[root@ovirt ~]# mv /etc/pki/ovirt-engine/keys/apache.key.nopass /etc/pki/ovirt-engine/keys/apache.key.nopass.bck
[root@ovirt ~]# mv /etc/pki/ovirt-engine/certs/apache.cer /etc/pki/ovirt-engine/certs/apache.cer.bck
Симлинками быдем ссылаться на новый сертификат:
[root@ovirt ~]# ln -s /etc/letsencrypt/live/ovirt.kurskmed.com/cert.pem /etc/pki/ovirt-engine/certs/apache.cer
[root@ovirt ~]# ln -s /etc/letsencrypt/live/ovirt.kurskmed.com/privkey.pem /etc/pki/ovirt-engine/keys/apache.key.nopass
[root@ovirt ~]# ln -s /etc/letsencrypt/live/ovirt.kurskmed.com/chain.pem /etc/pki/ovirt-engine/apache-ca.pem
[root@ovirt ~]# ln -s /etc/letsencrypt/live/ovirt.kurskmed.com/chain.pem /etc/pki/ca-trust/source/anchors/letsencrypt.pem
Обновим сертификат, для того, чтобы изменения вступили в силу:
update-ca-trust
перезапусим апач:
systemctl restart httpd.service
Создадим trust файл:
nano /etc/ovirt-engine/engine.conf.d/99-custom-truststore.conf
Вставляем содержимое:
ENGINE_HTTPS_PKI_TRUST_STORE="/etc/pki/java/cacerts"
ENGINE_HTTPS_PKI_TRUST_STORE_PASSWORD=""
Редактируем файл /etc/ovirt-engine/ovirt-websocket-proxy.conf.d/10-setup.conf
# nano /etc/ovirt-engine/ovirt-websocket-proxy.conf.d/10-setup.conf
Ищем строчки и меняем:
SSL_CERTIFICATE=/etc/pki/ovirt-engine/apache.cer
SSL_KEY=/etc/pki/ovirt-engine/keys/apache.key.nopass
Перезапускаем oVirt:
# systemctl restart ovirt-provider-ovn.service
# systemctl restart ovirt-engine.service
Теперь последний момент, чтобы перегенерация сертификата осуществлялась сама каждый месяц:
# nano /etc/cron.weekly/letsencrypt
Содержимое:
#!/bin/sh
certbot renew --quiet
Делаем его исполняемым и перезапускаем крон:
# chmod +x /etc/cron.weekly/letsencrypt
# systemctl reload crond
В итоге получаем: