Как продлить сертификат letsencrypt.org в работе cron?

1626
Karl Richter

Уже несколько дней у меня возникают проблемы с обновлением сертификата letsencrypt.org для моего веб-сервера.

Документация letsencrypt инструментов может быть хорошей или плохой - это невозможно сказать, потому что есть certbot, letsencrypt, certbot-auto, letsencrypt-auto, /etc/certbotкоторый может быть установлен или запустить из исходного каталога или inexisting и различных подкоманд, которые все как - то претендовать, чтобы сделать работу, а затем все неудачно с Непревзойденная производительность с такими хорошими вариациями постоянно вращающегося колеса бессмысленной обратной связи, как:

  • Use of --agree-dev-preview is deprecated. Saving debug log to /var/log/letsencrypt/letsencrypt.logв заголовке главной ветки https://github.com/letsencrypt/letsencrypt - вы отправляете скрипты, которые не работают?
  • Failed authorization procedure. [hostname] (http-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching http://[hostname]/.well-known/acme-challenge/JwhGtVHZ7x6pfBztDgYL-IRQXfa1JLwhAn84Hrzi_xo: Error getting validation data - без комментариев
  • Официальное руководство по адресу https://certbot.eff.org/#ubuntutzesty-apache для Ubuntu 17.04 и Apache2 не работает из-за

    Use of --agree-dev-preview is deprecated. Use of --agree-dev-preview is deprecated. Too many flags setting configurators/installers/authenticators 'webroot' -> 'apache' 

    что оставляет меня в неведении о том, есть ли смысл преследовать это

https://community.letsencrypt.org/t/renew-all-certificate-using-cron/21162/6 пытается это объяснить, но терпит неудачу, как и все, что отсутствует в формате SE. Информация устарела, и все сказанное противоречит.

Подобная документация man letsencryptвряд ли пригодна для использования, по крайней мере, если вы хотите понять, что вы делаете - не обязательно, но очень полезно в компьютерном администрировании, - например, By default, it will attempt to use a webserver both for obtaining and installing the certне совсем уверены, как веб-сервер должен выполнять соответствующие шаги. ..

Я использую Ubuntu 17.04.

0
Ваш вопрос читается как напыщенная речь. Я бы попробовал немного упростить это. Использование `certbot` (из PPA) должно быть достаточно; просто позвоните `certbot renew`. Вы должны показать, какую конкретную команду вы пытались выполнить и какое сообщение об ошибке вы получили. Почему «нет необходимости комментировать» в отношении второй ошибки, которую вы показываете? Разве это не стоит расследовать? Вы смотрели на связанные темы? И вы говорите, что у вас возникли проблемы с обновлением через несколько дней ... это работало раньше? Как вы думаете, что изменилось? slhck 6 лет назад 2

2 ответа на вопрос

0
xenoid

Мой собственный сервер работает с

# Renew Let's Encrypt cert 0 5 * * * root /usr/bin/certbot renew --quiet 

(это версия Ubuntu crontab). Кажется, работает до сих пор. Я следовал инструкциям на https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-16-04, и это было просто.

Единственная проблема с этим заключается в том, что если у вас есть веб-сервер, работающий на порту 443 (и, эй, у вас есть SSL-сертификаты, почему бы и нет?), Вы должны остановить веб-сервер, вызвать certbot для обновления и перезапустить веб-сервер. Я пишу небольшой скрипт-обертку, который делает это, а затем вызываю этот скрипт из cron. ivanivan 6 лет назад 0
Нет, вы не ... из приведенных выше инструкций: * Поскольку мы установили наши сертификаты с помощью плагина --apache, Apache также будет перезагружен для обеспечения использования новых сертификатов * xenoid 6 лет назад 0
Я не позволяю letsencrypt или чему-либо еще связываться с моим конфигом apache ... только в автономном режиме. просто хотелось бы, чтобы он был настроен на использование другого порта для новых сертификатов, поэтому сервер apache нужно просто перезагрузить, а не останавливать. Конечно, у меня очень низкий трафик, поэтому остановка веб-сервера на 30 секунд не представляет особой проблемы. Это просто кое-что для людей, чтобы быть в курсе .... ivanivan 6 лет назад 0
Я не совсем понимаю ... Вам не нужно останавливать свой сервер, чтобы получить новый сертификат, так как бот не использует сервер для этого, и как только сертификат получен, все, что нужно, это перезагрузить Apache для принять это во внимание. Я не вижу ничего измененного в моей конфигурации apache для получения нового сертификата. xenoid 6 лет назад 0
Я использую параметры `certonly --standalone` - поэтому он пытается прослушивать *: 443. Что конфликтует с сервером apache2, что означает, что в моем случае использования я должен остановить сервер apache2, обновить свой сертификат (или получить новый) и перезапустить apache. ivanivan 6 лет назад 0
0
Karl Richter

И секрет в том, что нужно настроить Apache (например, в /etc/apache2/apache2.conf), чтобы разрешить чтение каталога, добавив

Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/ <Directory "/var/www/html/.well-known/acme-challenge/"> Options None AllowOverride None ForceType text/plain RedirectMatch 404 "^(?!/\.well-known/acme-challenge/[\w-]$)" </Directory> 

(из https://community.letsencrypt.org/t/apache-multidomain-webroot/10663/2 ).

Я не совсем уверен, почему этот сценарий связан с автоматизацией, если мне нужно выяснить все эти секреты вручную - эта проблема могла быть решена автоматически или, по крайней мере, указана в полезном сообщении об ошибке.

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