certbot - 等待更新 TXT 記錄的正確方法是什麼?
我想用它
certbot
來創建一個萬用字元認證,在我執行certbot ...
它後給我一個雜湊,告訴我等到我把它放在我域的 TXT 記錄上。但我無法直接訪問我使用的 DNS 服務。我有一些辦公室程序來更新 DNS 設置,這需要時間,所以我不能在這裡打開 SSH 視窗。如果我重新執行
certbot
,雜湊會發生變化,並且會出現同樣的問題。等待 DNS 刷新並保持雜湊不變的正確方法是什麼?謝謝!
我發現如果我在挑戰之前按 Ctrl-C(例如按 Enter),則雜湊不會改變。
所以我可以等待 DNS 更新然後重新執行
certbot
,它顯示相同的雜湊,現在我可以立即按 Enter。
AFAIK,TTL 與 DNS-01 挑戰無關。看來 Let’s Encrypt 檢查哪些伺服器是權威伺服器並直接查詢其中一個權威伺服器,因此必要的延遲是允許區域數據同步到所有權威伺服器,而不是等待任何記憶體過期(這將是其中 TTL 是相關的)。
也就是說,進行 Let’s Encrypt 的預期方式是實際自動化,無論您使用 HTTP-01 質詢還是 DNS-01 質詢。
這樣做的主要優點是,只需預先進行少量工作,證書實際上會根據需要自動更新(通過
certbot renew
定期呼叫),這對於使這些短期證書可行非常重要。
certbot
帶有一組用於進行 DNS 更新的外掛(並且總是有實現您自己的選項)。在發布這篇文章時,外掛列表是:
- certbot-dns-cloudflare
- certbot-dns-cloudxns
- certbot-dns-digitalocean
- certbot-dns-dns 簡單
- certbot-dns-dnsmadeeasy
- certbot-dns-google
- certbot-dns-linode
- certbot-dns-luadns
- certbot-dns-nsone
- certbot-dns-ovh
- certbot-dns-rfc2136
- certbot-dns-route53
(有關最新列表+相關說明的連結,請參閱文件)
即,基本上有一個支持 RFC2136 的外掛(定期 DNS動態更新,與您可能自己執行的大多數標準 DNS 伺服器兼容)+ 一組用於一些主要 DNS 服務提供商的專有 API 的外掛。
範例用法:
certbot certonly \ --dns-rfc2136 \ --dns-rfc2136-credentials ~/.secrets/certbot/rfc2136.ini \ -d example.com
它們還有一個參數(名稱因外掛而異),例如
--dns-rfc2136-propagation-seconds
允許調整在完成挑戰之前等待多長時間(以允許區域數據同步到權威機構)。