Обновление SSL сертификата Let's Encrypt в автоматическом режиме требуется для того чтобы не заменять файлы сертификата и приватного ключа на сервере вручную каждые 3 месяца. Именно столько действительны сертификаты Let's Encrypt.
Обновление SSL сертификата Let's Encrypt в автоматическом режиме
Существует большое количество решений для автоматизации, но безопаснее всего следовать инструкциям с официального сайта certbot.eff.org
На главной странице выбирается дистрибутив и веб-сервер, для каждой комбинации существуют варианты выпуска сертификата и обновления в дальнейшем.
В примере будем использовать сервер с Debian 9 и Nginx в качестве веб-сервер.
Прежде всего потребуется установить дополнительные пакеты
Обновляем информацию о пакетах в репозитории
apt-get update
Устанавливаем пакет python-certbot-nginx
apt-get install python-certbot-nginx
Выпускаем сертификаты
certbot --authenticator webroot --installer nginx
Возникнет ряд диалогов, в которых нужно ответить на вопросы установщика
Which names would you like to activate HTTPS for?
————————————————-
1.en.server-gu.ru
2. www.anothersite.ru
————————————————-
Выбираем опцию 1. Список сайтов формируется путем выборки всех значений директив server_name и server_alias в конфигурационных файлах.
Далее требуется полный путь к директории с файлами сайта
Input the webroot for www.en.server-gu.ru: (Enter 'c' to cancel): /var/somepath/en.server-gu.ru/
И редирект. Он может устанавливаться автоматически или нет.
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.
Если конфигурация базовая и сложных перенаправлений не нужно, можно выбрать 2
IMPORTANT NOTES:
— Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/en.server-gu.ru-0001/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/en.server-gu.ru-0001/privkey.pem
Your cert will expire on 2018-10-20. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the «certonly» option. To non-interactively renew *all* of
your certificates, run «certbot renew»
— If you like Certbot, please consider supporting our work by:
Сертификат успешно выпущен. Обновить его как и любой другой сертификат для данной машины можно выполняя certbot renew по расписанию планировщика CRON.
К команде certbot --authenticator webroot --installer nginx
можно добавить ключ certonly, в этом случае устанавливаться сертификат не будет, полученные от Let's Encrypt файлы будут сохранены на сервере и на этом работа завершится.
Понадобится это может при существовании сложной конфигурации, для которой все действия лучше выполнять вручную.
Читайте про установку SSL сертификатов на Nginx и выполнение заданий через CRON