Назад | Перейти на главную страницу

Подстановочный знак SSL с LetsEncrypt дает ошибку

Я хочу создать SSL с подстановочными знаками для своего веб-сайта через LetsEncrypt. Я выполнил инструкцию и после запуска Certbot, это дает мне вызов DNS и говорит:

Please deploy a DNS TXT record under the name

_acme-challenge.db.example.com with the following value:
 jn324jr348r342bhr234hrou234nbr4324fj34r

Также db.example.com находится внутри /etc/bind/.

Что я делаю, так это то, что открылось db.example.com и в нижней строке добавьте это:

_acme-challenge.db.example.com 3600 IN TXT "jn324jr348r342bhr234hrou234nbr4324fj34r"

Но когда я проверяю это так:

nslookup -type=TXT _acme-challenge.example.com

Это дает мне эту ошибку:

 - The following errors were reported by the server:                           

   Domain: db.example.com                                                
   Type:   dns                                                                 
   Detail: DNS problem: NXDOMAIN looking up TXT for                            
   _acme-challenge.db.example.com - check that a DNS record              
   exists for this domain                                                      
ubuntu@me-1:/etc/bind$ nslookup -type=TXT _acme-challenge.example.com
Server:         127.0.0.53                                                     
Address:        127.0.0.53#53                                                  

** server can't find _acme-challenge.example.com: NXDOMAIN

И когда я запускаю Certbot, тоже получаю ошибку:

Some challenges have failed.                                                   

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

   Domain: db.example.com                                                
   Type:   dns                                                                 
   Detail: DNS problem: NXDOMAIN looking up TXT for                            
   _acme-challenge.db.example.com - check that a DNS record                                           
   exists for this domain

Что я здесь делаю не так?

Обратите внимание, что вам нужно немного подождать, пока изменения в вашей зоне DNS не будут обновлены на серверах по всему миру. Ваша проблема в том, что вы пытаетесь проверить, не слишком ли быстро применяются изменения к DNS. В этом случае есть хороший выход, и он требует использования API DNS-провайдера. Если вы используете, например, OVH, вы можете использовать их API для изменений DNS, и certbot сможет немедленно проверить изменения. Здесь есть список всех плагинов API: https://certbot.eff.org/docs/using.html?highlight=dns#dns-plugins

Если ваш провайдер DNS не поддерживает это, попробуйте переместить зону DNS в Cloudflare. Это очень просто, и вы получите эту услугу бесплатно. Кроме того, с помощью DNS API вы сможете бесплатно обновлять подстановочные сертификаты, оставив одну команду в cron, например:

0  1   20 * *   root    certbot certonly --non-interactive -d example.com -d '*.example.com' --dns-cloudflare --dns-cloudflare-credentials /my/secret/api/key/location

Обратите внимание, что в файле зоны имена, не заканчивающиеся точкой . являются относительными, обычно по отношению к текущему домену.

Итак, запись для _acme-challenge.db.example.com внутри зоны для db.example.com на самом деле означает запись для _acme-challenge.db.example.com.db.example.com.

Чтобы убедиться, что у вас есть правильная запись, вы можете:

  • Добавьте точку на конце: _acme-challenge.db.example.com.

  • Или не включать домен: _acme-challenge

Это основано на зоне, предназначенной для db.example.com, все было бы немного иначе, если бы зона была example.com вместо.

Также не забудьте обновить серийный номер зоны (в записи SOA) при его обновлении и перезагрузить зону.

Это, конечно, основано на том, что зарегистрированные серверы имен для вашего домена являются вашим собственным сервером (и вторичным).

При запросе с использованием nslookup или dig вы можете сказать им, с какого сервера запросить ответ. Всегда начинайте с проверки первичного, затем вторичного, а затем других серверов. И не забывайте, что некоторые типы обновлений могут занять некоторое время (особенно изменения, которые зависят от TTL предыдущей записи, и дополнения, которые зависят от отрицательного TTL кеша домена).