IT-SERVICES

Опубликовано: 1 октября 2018 г. 16:06

при загрузке вэб интерфейса Ovirt Engine хочется иметь доверенный ssl сертификат, в нашем случае let's encrypt, а не стандартный, который доверенный только организации. Гайд написан из-за отсутсвия мануалов по этому вопросу

featured-image

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

В итоге получаем:

Share on Facebook Share on LinkedIn Share on VK