Интеграция letsencrypt c vesta панелью: различия между версиями
Gumanoed (обсуждение | вклад) (Новая страница: «==mail.nntc.nnov.ru== ===Vesta=== ====Предарительные настройки Vesta==== Изменяем настройки шаблона, чтобы п…») |
Gumanoed (обсуждение | вклад) (→gitlab) |
||
(не показано 6 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
+ | ==Устанавливаем 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== | ==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 | ||
Строка 32: | Строка 39: | ||
====Автоматизируем==== | ====Автоматизируем==== | ||
− | cat /opt/ssl-key-update-mail.nntc.nnov.ru.sh | + | cat /opt/ssl-key-update-mail.nntc.nnov.ru.sh |
<pre> | <pre> | ||
Строка 48: | Строка 55: | ||
01 01 1 * * root /opt/ssl-key-update-mail.nntc.nnov.ru.sh | 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 | ||
+ | |||
+ | <pre> | ||
+ | #!/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 | ||
+ | </pre> | ||
+ | |||
+ | В cron добавляем | ||
+ | 01 05 * * * root /opt/install-keys-to-zimbra.sh | ||
==gitlab.nntc.nnov.ru== | ==gitlab.nntc.nnov.ru== | ||
Строка 98: | Строка 129: | ||
01 05 1 * * root /opt/ssl-key-update-gitlab.nntc.nnov.ru.sh | 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 | ||
+ | |||
+ | Для применения изменений даем команду: | ||
+ | |||
+ | gitlab-ctl reconfigure |
Текущая версия на 11:06, 1 июня 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
Для применения изменений даем команду:
gitlab-ctl reconfigure