通過DNS驗證自動申請nginx證書


驗證的三種方式:

  1. 域名備案;這個不用說了吧,說多了也不好;
  2. 暫時將域名解析到境外服務器,獲取到證書更新后再解析回來;
  3. 域名驗證從http改成dns。

前兩個辦法比較簡單,本文不再多說。這里說一下用dns方式驗證域名的步驟。

dns驗證有兩個重要參數:

  • –preferred-challenges,驗證方式,填寫dns或dns-01;
  • –server, 驗證服務器,填寫https://acme-v02.api.letsencrypt.org/directory

還有一個--manual參數,但在“非交互式”環境下,必須同時指定--manual-auth-hook選項。什么是“非交互式”環境?renew就是非交互式環境,因為不需要外部輸出和參與;而certonly(一般)是交互式的,因為執行過程中需要用戶輸入必要的信息。

本人沒看auth-hook腳本的寫法,所以用dns方式renew證書是不可行了。那就干脆重新再獲取一次證書吧!輸入命令:

certbot certonly -d 域名 --preferred-challenges dns --manual --server https://acme-v02.api.letsencrypt.org/directory

命令會詢問是否同意記錄當前機器的ip,必選“y”(選n會導致腳本退出)。接着命令會輸出dns記錄的驗證信息,按照指定值在dns控制台加上 TXT 記錄。dns記錄添加完成后等半分鍾左右讓記錄生效,然后按回車鍵,記錄無誤的話證書就生成了。

感謝偉大的防火牆和備案機制,又讓我長見識了!

參考

  1. Invalid response use certbot in ubuntu
  2. Let’s Encrypt 免費通配符 SSL 證書申請教程
  3. https://zhuanlan.zhihu.com/p/80909555
  4. https://tlanyan.me/lets-encrypt-renew-error-challenge-failed-for-domain-xxxx/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM