сбой вызова acme. Неверный ответ от http://service.domain1.com/.well-known/acme-challenge/xWsuGIi0JmuEuDzS5qPkVX3oHuzY2kNl0YGoU6HltRg

#apache #ssl #ssl-certificate #apache-config #acme

#apache #ssl #ssl-сертификат #apache-config #acme

Вопрос:

Когда я пытаюсь выполнить команду для добавления SSL-сертификата Lets Encrypt для следующего, я получаю сообщение об ошибке. Не могли бы вы, пожалуйста, помочь мне исправить проблему.

На сервере выполняется команда для активации SSL-сертификата LetsEncript

 sudo certbot run -a webroot -i apache -w /var/www/html -d service.domain1.com --debug-challenges
  

Сообщение об ошибке

 Invalid response from
http://service.domain1.com/.well-known/acme-challenge/xWsuGIi0JmuEuDzS5qPkVX3oHuzY2kNl0YGoU6HltRg
[35.186.238.101]: "<!doctype html><html lang="en"><head><meta
http-equiv="content-type"
content="text/html;charset=utf-8"><meta name="viewport" con"
  

Здесь я включаю полное сообщение после запуска команды

 ubuntu@ip-10-0-0-55:~$ sudo certbot run -a webroot -i apache -w /var/www/html -d service.domain1.com --debug-challenges
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer apache
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for service.domain1.com
Using the webroot path /var/www/html for all unmatched domains.
Waiting for verification...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Challenges loaded. Press continue to submit to CA. Pass "-v" for more info about
challenges.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue
Cleaning up challenges
Failed authorization procedure. service.domain1.com (http-01): urn:ietf:params:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://service.domain1.com/.well-known/acme-challenge/xWsuGIi0JmuEuDzS5qPkVX3oHuzY2kNl0YGoU6HltRg [35.186.238.101]: "<!doctype html><html lang="en"><head><meta http-equiv="content-type" content="text/html;charset=utf-8"><meta name="viewport" con"

IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: service.domain1.com
   Type:   unauthorized
   Detail: Invalid response from
   http://service.domain1.com/.well-known/acme-challenge/xWsuGIi0JmuEuDzS5qPkVX3oHuzY2kNl0YGoU6HltRg
   [35.186.238.101]: "<!doctype html><html lang="en"><head><meta
   http-equiv="content-type"
   content="text/html;charset=utf-8"><meta name="viewport" con"

   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.
  

Ответ №1:

«Чтобы исправить эти ошибки, пожалуйста, убедитесь, что ваше доменное имя было введено правильно и записи DNS A / AAAA для этого домена содержат правильный IP-адрес».

Я бы сказал, что у вас не добавлены правильные настройки DNS для вашего домена. Он предоставит вам несколько записей A для добавления и на какой IP указать их.

Что вы можете сделать, так это получить копию acme-dns-certbot

wget https://github.com/joohoi/acme-dns-certbot-joohoi/raw/master/acme-dns-auth.py

После загрузки измените скрипт на исполняемый файл

chmod x acme-dns-auth.py

Измените первую строку скрипта на использование python3

nano acme-dns-auth.py #!/usr/bin/env python3

Наконец, переместите скрипт в каталог Certbot Let’s Encrypt, чтобы Certbot мог его загрузить

sudo mv acme-dns-auth.py /etc/letsencrypt/

Теперь запустите Certbot и принудительно выдайте сертификат, используя проверку DNS. Это запустит скрипт acme-dns-certbot и запустит процесс начальной настройки

sudo certbot только вручную -manual-auth-hook /etc/letsencrypt/acme-dns-auth.py —предпочтительный-вызывает dns —debug-challenges -d *.your-domain -d ваш-домен

Вы используете аргумент —manual, чтобы отключить все функции автоматической интеграции Certbot. В этом случае вы просто выдаете необработанный сертификат, а не автоматически устанавливаете его на сервис.

Вы настраиваете Certbot на использование подключения acme-dns-certbot с помощью аргумента —manual-auth-hook. Вы запускаете аргумент —preferred-challenges, чтобы Certbot отдал предпочтение проверке DNS.

Вы также должны сообщить Certbot о приостановке перед попыткой проверки сертификата, что вы делаете с аргументом —debug-challenges . Это позволит вам установить записи DNS CNAME, требуемые acme-dns-certbot, которые рассматриваются позже на этом шаге. Без аргумента —debug-challenges Certbot не будет приостанавливаться, поэтому у вас не будет времени для внесения требуемого изменения DNS.

Не забудьте заменить каждое из доменных имен, которые вы хотите использовать, с помощью аргументов -d. Если вы хотите выдать подстановочный сертификат, убедитесь, что звездочка (*) заменена обратной косой чертой ().

После того, как это будет сделано, вы должны увидеть аналогичное сообщение

… Вывод из acme-dns-auth.py : Пожалуйста, добавьте следующую запись CNAME в вашу основную зону DNS: _acme-challenge.your-domain CNAME a15ce5b2-f170-4c91-97bf-09a5764a88f6.auth.acme-dns.io .

Ожидание проверки … …

Добавьте настройку DNS в свой домен, а затем продолжайте, и вы должны быть готовы пойти и увидеть следующее:

… Поздравляем! Ваш сертификат и цепочка были сохранены по адресу: /etc/letsencrypt/live/your-domain/fullchain.pem Ваш файл ключа был сохранен по адресу: /etc/letsencrypt/live /your-domain/privkey.pem…

Комментарии:

1. Ах, большое спасибо, Роб, очень новичок в том, чтобы отвечать на вопросы здесь, но я запомню это 🙂 Ссылка для всех, кому это понравится digitalocean.com/community/tutorials /…