Сбой letsencrypt / certbot после обновления - PullRequest
2 голосов
/ 19 марта 2020

Я только что получил письмо от Let's Encrypt с указанием:

Beginning June 1, 2020, we will stop allowing new domains to validate using
the ACMEv1 protocol. You should upgrade to an ACMEv2 compatible client before
then, or certificate issuance will fail. For most people, simply upgrading to
the latest version of your existing client will suffice.

Я выполнил следующее обновление для Debian 9:

  • sudo apt-get update
  • sudo apt-get upgrade
  • Он обновил многие пакеты, но сказал, что certbot задерживается
  • Затем я сделал sudo apt-get upgrade certbot
  • Он обновил certbot (а также python3 -acme, python3 -certbot и python3 -certbot- apache). Он также установил новый пакет (python3 -requests-toolbelt).
  • Казалось, что все установлено нормально
  • Затем я запустил sudo certbot renew - dry -run

На dry -запуске я получил несколько ошибок следующим образом (некоторые элементы были УДАЛЕНЫ мной, так как я не был уверен, была ли это конфиденциальная информация для публикации здесь):

Attempting to renew cert (mail.example.com) from /etc/letsencrypt/renewal/mail.example.com.conf produced an unexpected error: Failed authorization procedure. mail.example.com (http-01): urn:ietf:params:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://mail.example.com/.well-known/acme-challenge/REDACTED_STRING_EXAMPLE [REDACTED HEXADECIMAL ADDRESS]: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>404 Not Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p". Skipping.

и

 The following errors were reported by the server:

   Domain: mail.example.com
   Type:   unauthorized
   Detail: Invalid response from
   http://mail.example.com/.well-known/acme-challenge/REDACTED CODE
   [REDACTED HEXADECIMAL ADDRESS]: "<!DOCTYPE HTML PUBLIC
   \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>404 Not
   Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p"

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A/AAAA record(s) for that domain
   contain(s) the right IP address.

Что вызывает эту проблему? У меня нет хорошо известного каталога в моем root веб-каталоге. Это новое требование, которое мне нужно добавить? Если так, что я могу сделать, чтобы исправить мой certbot, чтобы я мог правильно продлить свои сертификаты?

Ответы [ 2 ]

0 голосов
/ 30 марта 2020

Иногда автоматическая проверка c завершается неудачей, особенно при наличии пользовательских конфигураций. Если это еще не сделано, ознакомьтесь с документацией certbot для HTTP-01 Challenge . Важные части

При использовании плагина Web root или ручного плагина убедитесь, что каталог web root существует и что вы его правильно указали. Если вы установите для веб-каталога root для example.com значение / var / www/example.com, то файл, помещенный в / var / www/example.com/.well-known/acme-challenge/testfile, должен появиться на вашем веб-сайте по адресу http://example.com/.well-known/acme-challenge/testfile (перенаправление для HTTPS здесь все в порядке и не должно мешать вызову работать.) ...

Убедитесь, что ваш веб-сервер правильно обслуживает файлы из каталога, в котором находится файл запроса (например, /.well-known/acme - вызов) в ожидаемое местоположение на веб-сайте без добавления верхнего или нижнего колонтитула.

В этом руководстве описывается, как разрешить запросы acme http с сервером apache.

Вкратце:

Для простоты вы можете сопоставить все HTTP-запросы для .well-known / acme-challenge в один каталог / var / lib / letsencrypt. Для этого вам нужно заранее создать каталог.

sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp www-data /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt

Затем, чтобы убедиться, что папка доступна, вы можете использовать следующий фрагмент конфигурации

Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/"
<Directory "/var/lib/letsencrypt/">
    AllowOverride None
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    Require method GET POST OPTIONS
</Directory>
0 голосов
/ 29 марта 2020

Итак, когда я увидел, что вы используете Apache, я думаю, что он неправильно настроен для правильного обслуживания ACME Challenge.

Что certbot делает, создает папку .well-known/acme-challenge/ и затем добавьте его в конфигурацию Apache для веб-сайта (здесь mail.example.com). Итак, я думаю:

  • Убедитесь, что у вас есть mail.example.com конфигурация в Apache (/etc/apache2). Вы можете сбросить все ваши текущие активные конфигурации с помощью чего-то вроде apachectl -t -D DUMP_VHOSTS.
  • Проверьте вашу mail.example.com конфигурацию в Apache и особенно часть :80, в которую certbot попытается вставить код.

Я думаю, что у вас возникла проблема, так как certbot не может сделать доступной папку .well-known (более HTTP, порт 80 ). Проверьте свои <Directory> теги в своей конфигурации, чтобы попытаться понять, куда Apache перенаправляет ваш трафик c.

...