Интеграция letsencrypt c vesta панелью
Содержание
Устанавливаем letsencrypt и letsencrypt-vesta
Настройка делалась по статье https://github.com/interbrite/letsencrypt-vesta
cd /usr/local git clone https://github.com/letsencrypt/letsencrypt.git git clone https://github.com/interbrite/letsencrypt-vesta.git
mail.nntc.nnov.ru
Vesta
Предарительные настройки Vesta
Изменяем настройки шаблона, чтобы папка .well-known была доступна прямо на proxy
cat /usr/local/vesta/data/templates/web/nginx/zimbra-force-https.tpl
server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location /.well-known { default_type text/plain; root /etc/letsencrypt/webroot; } location /(?!\.well-known) { rewrite ^(.*) https://%domain_idn%$1 permanent; } }
Даем команду vesta панели на перегенирацию конфигурационного файла nginx для всех хостов пользователя http_proxy
/usr/local/vesta/bin/v-rebuild-web-domains http_proxy
После выполнения этой команды изменения попадут в файл /home/http_proxy/conf/web/nginx.conf
Запрашиваем ключи у LetsEncrypt
letsencrypt-vesta http_proxy mail.nntc.nnov.ru
Будьте внимательны, Vesta для каждого домена поднимает поддомен www. Если он не прописан в DNS удалите этот alias из web-интерфейса vesta-панели.
Автоматизируем
cat /opt/ssl-key-update-mail.nntc.nnov.ru.sh
#!/bin/bash letsencrypt-vesta http_proxy mail.nntc.nnov.ru rcp -o StrictHostKeyChecking=no -r /etc/letsencrypt/live/mail.nntc.nnov.ru sslmngr@mail.nntc.nnov.ru:~ touch /tmp/renewed.txt rcp -o StrictHostKeyChecking=no /tmp/renewed.txt sslmngr@mail.nntc.nnov.ru:~ rm /tmp/renewed.txt
Добавляем строчку в cron
01 01 1 * * root /opt/ssl-key-update-mail.nntc.nnov.ru.sh
Zimbra
Автоматизацию настройки Zimbra мы делали по этой статье https://wiki.zimbra.com/wiki/Installing_a_LetsEncrypt_SSL_Certificate
cat /opt/install-keys-to-zimbra.sh
#!/bin/bash if [ -e /home/sslmngr/renewed.txt ] then cat /home/sslmngr/mail.nntc.nnov.ru/chain.pem /home/sslmngr/X3-root-cert.pem > /home/sslmngr/mail.nntc.nnov.ru/chain-and-root.pem /opt/zimbra/bin/zmcertmgr verifycrt comm /home/sslmngr/mail.nntc.nnov.ru/privkey.pem /home/sslmngr/mail.nntc.nnov.ru/cert.pem /home/sslmngr/mail.nntc.nnov.ru/chain-and-root.pem cp /home/sslmngr/mail.nntc.nnov.ru/privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key /opt/zimbra/bin/zmcertmgr deploycrt comm /home/sslmngr/mail.nntc.nnov.ru/cert.pem /home/sslmngr/mail.nntc.nnov.ru/chain-and-root.pem rm /home/sslmngr/renewed.txt #sudo -u zimbra /opt/zimbra/bin/zmcontrol restart su zimbra -c "/opt/zimbra/bin/zmcontrol restart" - fi
В cron добавляем
01 05 * * * root /opt/install-keys-to-zimbra.sh
gitlab.nntc.nnov.ru
Vesta
Предарительные настройки Vesta
Изменяем настройки шаблона, чтобы папка .well-known была доступна прямо на proxy
cat /usr/local/vesta/data/templates/web/nginx/gitlab_forcehttps_proxy.tpl
server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location /.well-known { default_type text/plain; root /etc/letsencrypt/webroot; } location /(?!\.well-known) { rewrite ^(.*) https://%domain_idn%$1 permanent; } }
Даем команду vesta панели на перегенирацию конфигурационного файла nginx для всех хостов пользователя http_proxy
/usr/local/vesta/bin/v-rebuild-web-domains http_proxy
После выполнения этой команды изменения попадут в файл /home/http_proxy/conf/web/nginx.conf
Запрашиваем ключи у LetsEncrypt
letsencrypt-vesta http_proxy gitlab.nntc.nnov.ru
Будьте внимательны, Vesta для каждого домена поднимает поддомен www. Если он не прописан в DNS удалите этот alias из web-интерфейса vesta-панели.
Автоматизируем
cat /opt/ssl-key-update-gitlab.nntc.nnov.ru.sh
#!/bin/bash letsencrypt-vesta http_proxy gitlab.nntc.nnov.ru rcp -o StrictHostKeyChecking=no -r /etc/letsencrypt/live/gitlab.nntc.nnov.ru sslmngr@gitlab.nntc.nnov.ru:~ touch /tmp/renewed.txt rcp -o StrictHostKeyChecking=no /tmp/renewed.txt sslmngr@gitlab.nntc.nnov.ru:~/ rm /tmp/renewed.txt
Добавляем строчку в cron
01 05 1 * * root /opt/ssl-key-update-gitlab.nntc.nnov.ru.sh
gitlab
Настройки на gitlab для применения новых ключей от letsencrypt, которые мы получили от vesta-панели (по rcp)
nano /etc/gitlab/gitlab.rb
... ...