
У меня есть домен (например, example.com
), и в настоящее время у меня настроен и правильно работает сертификат Let's Encrypt для example.com
Apache www.example.com
на экземпляре Amazon Linux 2 AMI EC2, и я пытаюсь перенастроить сертификат, чтобы настроить его для домена с подстановочными знаками (например, *.example.com
).
Я подключился по SSH к экземпляру EC2 и выполнил следующую команду, пытаясь сделать это (с реальным доменом, а не example.com
):
sudo certbot certonly --manual --preferred-challenges=dns --server https://acme-v02.api.letsencrypt.org/directory -d example.com -d *.example.com
После выполнения этой команды я получаю следующее сообщение:
Затем я добавляю запись TXT в настройки DNS в Google Domains, как предлагается в следующем запросе:
Затем я проверил наличие записи TXT, воспользовавшись следующим сайтом и введя URL _acme-challenge
/имя хоста:
https://dnslookup.online/txt.html
Убедившись, что запись есть, я нажимаю Enter в консоли SSH, но получаю следующую ошибку:
Что я делаю не так, что не позволяет мне выдать wildcard сертификат? Любая помощь/руководство будут высоко оценены. Спасибо.
Редактировать: Должен отметить, что в качестве отправной точки я использовал следующий пост:https://community.letsencrypt.org/t/you-may-need-to-use-a-different-authenticator-plugin/115026/4
решение1
Я разобрался с проблемой. Когда я вводил запись TXT в Google Domains, мне нужно было ввести только _acme-challenge
имя хоста, но я ввел _acme-challenge.example.com
, из-за чего имя хоста записи TXT было неверным.
После того, как я это исправил, первое испытание прошло успешно, а затем мне пришлось пройти второе испытание со случайной строкой, чтобы все заработало.
Обратите внимание, что при использовании Google Domains для второго TXT-задания вам не следует создавать новую запись TXT или заменять текущее значение записи TXT. Вместо этого вам нужно добавить новое значение к существующей записи TXT (при этом первое значение останется неизмененным).
Также, после этого, мне пришлось обновить /etc/httpd/conf/httpd.conf
и /etc/httpd/conf/httpd-le-ssl.conf
файлы на сервере, чтобы получить ServerAlias
из *.example.com
, чтобы это заработало. Не забудьте также перезапустить Apache после того, как все будет сделано. Надеюсь, после этого у вас тоже все заработает.