Let’s Encrypt DNS problem: NXDOMAIN looking up

Дата: 31.07.2018Метки:

Ошибка по невнимательности при настройке Let’s Encrypt. Были созданы сертификаты на несуществующие домены. Далее в конфигурации Nginx домен был изменен и пересозданы сертификаты, но настройки Let’s Encrypt для продления сертификатов остались.

По этой причине при выполнении процесса обновления сертификатов постоянно сыпались ошибки. Для исправления нужно удалить конфиги для несуществующих доменов в каталоге /etc/letsencrypt/renewal/

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Cert not yet due for renewal
Cert not yet due for renewal
Cert not yet due for renewal
Cert not yet due for renewal
Cert not yet due for renewal
Cert is due for renewal, auto-renewing...
Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for a.codebeer.ru
Waiting for verification...
Cleaning up challenges
Attempting to renew cert from /etc/letsencrypt/renewal/a.codebeer.ru.conf produced an unexpected error: Failed authorization procedure. a.codebeer.ru (http-01): urn:acme:error:dns :: DNS problem: NXDOMAIN looking up A for a.codebeer.ru. Skipping.
Cert is due for renewal, auto-renewing...
Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for b.codebeer.ru
Waiting for verification...
Cleaning up challenges
Attempting to renew cert from /etc/letsencrypt/renewal/b.codebeer.ru.conf produced an unexpected error: Failed authorization procedure. b.codebeer.ru (http-01): urn:acme:error:dns :: DNS problem: NXDOMAIN looking up A for b.codebeer.ru. Skipping.
Cert not yet due for renewal
Cert is due for renewal, auto-renewing...
Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for c.codebeer.ru
Waiting for verification...
Cleaning up challenges
Attempting to renew cert from /etc/letsencrypt/renewal/c.codebeer.ru.conf produced an unexpected error: Failed authorization procedure. c.codebeer.ru (http-01): urn:acme:error:dns :: DNS problem: NXDOMAIN looking up A for c.codebeer.ru. Skipping.
Cert not yet due for renewal
3 renew failure(s), 0 parse failure(s)

Настройка Letsencrypt на Debian 8

Дата: 30.04.2018Метки:

Недавно сломался заказанный мной на 3 года Rapid SSL. Как я понял, связано это с этой новостью: «Google объявил о том, что будет поэтапно блокировать SSL-сертификаты группы Symantec». Под удаление попадут сертификаты Symantec, GeoTrust, Thawte, RapidSSL. Ну вот, похоже, что эта учесть дошла и до моего блога.

Сертификат еще должен был работать 2 года, но я не стал расстраиваться и пользуясь случаем решил перейти на бесплатный Letsencrypt. Всегда хотел это сделать, но вот все не было повода отказаться от оплаченного ранее сертификата. Я буду описывать процесс для Debian 8. До сих пор для своего блога использую именно эту систему. Но думаю, что данная заметка будет актуальна и для Debian 9.

Для получения сертификата я буду использовать клиент certbot. Для начала необходимо добавить репозиторий в систему:

echo 'deb http://ftp.debian.org/debian jessie-backports main' | sudo tee /etc/apt/sources.list.d/backports.list
apt-get update

Устанавливаем клиент:

apt-get install certbot -t jessie-backports

После установки открываем конфигурационный файл nginx для сайта, которому необходимо сделать сертификат. В моем случае это:

nano /etc/nginx/conf.d/codebeer.ru.conf

Добавляем в секцию server:

location ^~ /.well-known/acme-challenge/ {
       allow all;
       default_type "text/plain";
}

Применяем настройки:

nginx -t
service nginx reload

Получаем сертификат.

certbot certonly -a webroot --webroot-path=/var/www/html -d codebeer.ru -d www.codebeer.ru

Указываем свой каталог размещения сайта и домен, для которого будет выпущен сертификат Letsencrypt. В процессе необходимо будет указать свой email. После завершения процесса, сертификаты будут сохранены в каталоге:

ssl_certificate /etc/letsencrypt/live/codebeer.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/codebeer.ru/privkey.pem;

Для автоматического продления сертификатов добавим в cron следующую команду:

30 2 * * * /usr/bin/certbot renew --noninteractive --renew-hook "/bin/systemctl reload nginx" >> /var/log/le-renew.log