Я запускаю Linux-сервер для экспресс-приложения nodejs на katefromhrbot.com, и я использовал руководство по certbot для Nginx и Ubuntu 18.04 LTS чтобы обеспечить поддержку безопасного домена https. Сейчас он работает, но недавно я получил довольно тревожное электронное письмо, из-за которого я получил рой бабочек внутри моего желудочного органа, поскольку в электронном письме говорилось, что мой сертификат истечет в ближайшем будущем, если я не приму меры! Я был смущен этим, потому что последний шаг certbot говорит: «Вам не нужно будет снова запускать Certbot, если вы не измените свою конфигурацию. Вы можете протестировать автоматическое обновление своих сертификатов, выполнив эту команду». Когда я изначально настраивал ее, я запускал команду пробного запуска обновления, поэтому я не понимаю, почему мне вообще нужно что-то делать для обновления. 🤔
Выход из lsb_release -a
:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic
Вот письмо от "expiry@letsencrypt.org":
Привет,
Срок действия вашего сертификата (или сертификатов) для имен, перечисленных ниже, истечет через 20 дней (08 декабря 19 17:46 +0000). Не забудьте обновить сертификат до этого, иначе посетители вашего веб-сайта столкнутся с ошибками.
Мы рекомендуем автоматически обновлять сертификаты, когда у них остается треть от общего срока службы. Для текущих 90-дневных сертификатов Let's Encrypt это означает обновление за 30 дней до истечения срока действия. Видеть https://letsencrypt.org/docs/integration-guide/ для подробностей.
katefromhrbot.com
По любым вопросам или поддержке, пожалуйста, посетите https://community.letsencrypt.org/. К сожалению, мы не можем предоставить поддержку по электронной почте.
Для получения подробной информации о том, когда мы отправляем эти электронные письма, посетите https://letsencrypt.org/docs/expiration-emails/. В частности, обратите внимание, что это письмо с напоминанием по-прежнему отправляется, если вы получили немного другой сертификат, добавив или удалив имена. Если вы заменили этот сертификат на новый, который охватывает больше или меньше имен, чем указано в списке выше, вы можете проигнорировать это сообщение.
Если вы получили это письмо по ошибке, откажитесь от подписки на ...
С уважением, команда Let's Encrypt
Странно то, что когда я вхожу на свой сервер и пытаюсь запустить sudo certbot renew
тогда он говорит это:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/katefromhrbot.com.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert not yet due for renewal
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
The following certs are not due for renewal yet:
/etc/letsencrypt/live/katefromhrbot.com/fullchain.pem expires on 2020-02-16 (skipped)
No renewals were attempted.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Итак, автоматическое продление сработало? Если это так, то, вероятно, было бы лучше, если бы Let's encrypt и оба отправили электронное письмо, когда это обновление прошло успешно, а не (или, по крайней мере, в дополнение к) тому, которое говорит вам паниковать, потому что ваш сертификат скоро истечет.
Кроме того, мне неясно, когда именно разрешено продление, и когда оно действительно происходит, когда происходит автоматическое продление.
Итак, у меня есть вопросы:
sudo certbot renew --dry-run
это дает мне странную ошибку, связанную с неправильным форматом сообщения запроса, поэтому мне интересно, стоит ли мне беспокоиться об этом.Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/katefromhrbot.com.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert not due for renewal, but simulating renewal for dry run
Plugins selected: Authenticator nginx, Installer nginx
Renewing an existing certificate
Attempting to renew cert (katefromhrbot.com) from /etc/letsencrypt/renewal/katefromhrbot.com.conf produced an unexpected error: urn:ietf:params:acme:error:malformed :: The request message was malformed :: Method not allowed. Skipping.
All renewal attempts failed. The following certs could not be renewed:
/etc/letsencrypt/live/katefromhrbot.com/fullchain.pem (failure)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
** DRY RUN: simulating 'certbot renew' close to cert expiry
** (The test certificates below have not been saved.)
All renewal attempts failed. The following certs could not be renewed:
/etc/letsencrypt/live/katefromhrbot.com/fullchain.pem (failure)
** DRY RUN: simulating 'certbot renew' close to cert expiry
** (The test certificates above have not been saved.)
Спасибо!
ваше автоматическое продление работает нормально ;-).
Чтобы понять эту ситуацию, есть одна «деталь», которую вы не упомянули, потому что забыли о ней или просто не чувствуете себя важной ... В любом случае давайте рассмотрим ее и получим ответ, который вы хотите получить.
Поскольку вы правильно процитировали заметку, вы написали ответ, даже если вы не знали об этом ;-): «Вам не нужно будет снова запускать Certbot, если вы не измените свою конфигурацию. Вы можете протестировать автоматическое продление своих сертификатов, выполнив эту команду»
Дата «разрыва» для этого случая - 19 сентября 2019 г., когда вы измените настройки. Для указанного домена существовало два сертификата, когда использовался только один, на который распространялось автоматическое продление. Выпуск второго был прекращен, но не отозван. Технически это не проблема, так как срок его действия в любом случае истекает через 90 дней, но, поскольку сертификат "не отозван и не истекает", вы были правильно уведомлены ...
Вы начали с сертификата на 11 июля 2019 г. когда вы создали сертификат для домена katefromhrbot.com с серийным номером 3: 81: 51: 37: 84: 6E: 0A: 8B: 14: 5C: 71: 24: 87: D3: 11: 89: EB: 57 срок действия истекает 9 октября 2019 г.
На 9 сентября 2019 г. ваша настройка правильно автоматически обновляет сертификат с той же конфигурацией и с серийным номером 3: 23: 0B: 95: 64: 05: 5D: 66: 52: C1: 0A: 55: B0: 79: D6: CE: 85: BE срок действия истекает 8 декабря 2019 г. На 19 сен, 2019 ты понял, что только katefromhrbot.com присутствует на сертификате, и при изменении настройки был выдан второй сертификат, содержащий katefromhrbot.com и www.katefromhrbot.com с серийным 3: 43: 48: 28: 2E: A4: 5C: 87: 37: 6B: B3: C1: 92: 26: BB: 11: 05: 2D срок действия истекает 17 декабря 2019 г. После этого изменения конфигурации для автоматического продления был сохранен только второй сертификат. Первый не отозвали, а просто перестали использовать.
На 18 ноября, 2019 используемый сертификат (с двумя полными доменными именами) был обновлен, и новый был выпущен с серийным номером 3: 22: 18: 44: D5: 0A: 64: 51: 90: 52: 48: 76: 37: 10: 7B: B5: 41: 71 срок действия истекает 16 февраля 2020 г.
Указанное вами уведомление связано с сертификатом с серийным номером. 3: 23: 0B: 95: 64: 05: 5D: 66: 52: C1: 0A: 55: B0: 79: D6: CE: 85: BE который был заменен новым в вашей системе. На стороне Let's encrypt это был действующий сертификат, срок действия которого истек, поэтому уведомление было отправлено.
Срок действия сертификата 90 дней. Рекомендуемое продление на 2/3 срока действия - за 30 дней до истечения срока. Первое уведомление об истечении срока действия сертификата отправляется за 20 дней до окончания срока действия. Как только обновление будет успешным и появится новый сертификат с такое же / соответствующее SAN (альтернативное имя субъекта) доступно, уведомление не отправляется. Таким образом, до отправки уведомления остается минимум 9 попыток.
Я надеюсь, что этот ответ прояснит вам и ответит на все вопросы, связанные с вашими сомнениями по поводу процесса.