Интеграция letsencrypt c vesta панелью: различия между версиями
Gumanoed (обсуждение | вклад) (→gitlab) |
Gumanoed (обсуждение | вклад) (→Vesta) |
||
Строка 8: | Строка 8: | ||
==mail.nntc.nnov.ru== | ==mail.nntc.nnov.ru== | ||
===Vesta=== | ===Vesta=== | ||
− | ==== | + | ====Предварительные настройки Vesta==== |
Изменяем настройки шаблона, чтобы папка .well-known была доступна прямо на proxy | Изменяем настройки шаблона, чтобы папка .well-known была доступна прямо на proxy | ||
cat /usr/local/vesta/data/templates/web/nginx/zimbra-force-https.tpl | cat /usr/local/vesta/data/templates/web/nginx/zimbra-force-https.tpl |
Версия 15:14, 31 мая 2016
Содержание
Устанавливаем 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
... nginx['redirect_http_to_https'] = true nginx['ssl_client_certificate'] = "/etc/gitlab/ssl/ca.cer" nginx['ssl_certificate'] = "/home/sslmngr/gitlab.nntc.nnov.ru/fullchain.pem" nginx['ssl_certificate_key'] = "/home/sslmngr/gitlab.nntc.nnov.ru/privkey.pem" nginx['listen_https'] = true ...
В качесте /etc/gitlab/ssl/ca.cer испольуется корневой X3 ключ самого letsencrypt
wget -c https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem -O /etc/gitlab/ssl/ca.cer
Но вы можете в качестве корневого использовать и самый родительский ключ Digital Ocean, которым подписан X3 сертификат Letsencrypt'а. Взять корневой сертификат X3 от digital Ocean можно по этой ссылке: https://www.identrust.com/certificates/trustid/root-download-x3.html