Domain-Name-System

帶有 LetsEncrypt 的萬用字元 SSL 給出錯誤

  • May 25, 2020

我想通過為我的網站創建萬用字元 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。這種情況有一個很好的解決方法,它需要使用 DNS 提供商的 API。如果您使案例如 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

引用自:https://serverfault.com/questions/1018557