Domain-Name-System
帶有 LetsEncrypt 的萬用字元 SSL 給出錯誤
我想通過為我的網站創建萬用字元 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