@timofy

Как настроить автообновление Let's Encrypt?

Суть в следующем:
Имеется собственный сервер с ОС CentOS 7, на котором в качестве панели управления используется бесплатная Vesta CP. С ее помощью я создал приложение на сервере и установил сертификат Let's Encrypt для этого приложения(сайта). Устанавливал его уже не через Vesta, а через терминал с помощью certbot. Предполагаю, что автообновление сертификата работало бы без дополнительных настроек(могу ошибаться), если бы не следующие нюансы: когда первый раз начал устанавливать сертификат, то попытка завершилась неудачей, так как оказалось, что приложение работает на Apache на порту 8080, запросы же принимает NGINX и проксирует их Apache. Тогда я на время установки сертификата отключил NGINX и в конфиге Apache указал слушать порт 80, а не 8080, то же самое сделал в Apache-конфиге самого приложения и перезагрузил Apache, после чего удалось установить сертификат. После этого все настройки вернул на место, опять перезагрузил Apache, запустил INGINX и все работает, но... я понимаю что в таком случае сертификат вряд ли сам сможет обновляться - нужно что-то поменять или дополнительно настроить, чтобы работало автообновление сертификата, но что нужно сделать - подскажите
  • Вопрос задан
  • 598 просмотров
Решения вопроса 1
PageAuditRU
@PageAuditRU
Senior SEO Анализатор
1. При получении/обновлении сертификата движок Апача можно вообще не задействовать.
2. Создайте каталог /var/www/letsencrypt
3. Создайте файл /etc/nginx/letsencrypt.inc с содержимым
location /.well-known {

        allow           all;
        root            /var/www/letsencrypt;
        error_log       /var/log/nginx/!letsencrypt.error.log;
        access_log      /var/log/nginx/!letsencrypt.access.log;

    }

4. В секции server подключите файл letsencrypt.inc
include letsencrypt.inc
5. В каталоге /etc/letsencrypt найдите файл cli.ini, в нём должны быть строки
webroot-path = /var/www/letsencrypt
authenticator = webroot
installer = None

6. Запустите команду certbot renew
7. В файле crontab создать строки
# Certbot renew
0 0     15 * *  root    certbot renew --renew-hook "service apache reload; service nginx reload"


PS: Если обновление таким способом не пройдёт, то забейте на текущий сертификат, получите новый безо всяких оболочек, а сразу через консольные программы согласно инструкции к certbot для Nginx. В общем, никаких особых сложностей быть не должно, тут только вопрос чётко прописать откуда брать и куда класть.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
Нужно настроить выдачу\обновление сертификата через webroot path, а не через поднятие временного web сервера. Тогда все равно кто и что проксирует - если ваш корень сайта доступен.
Как потом настроить автообновление - гуглится на раз - это одна строка в cron.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы