Ubuntu里let's encrypt通配符證書的自動續期更新


環境與需求:

  Ubuntu雲服務器上,已經做好了ssl證書的免費申請,但是證書的期限是3個月,3個月到期后必須重新申請或者更新。由於k8s集群里的服務一直在使用證書,每三個月人工更新太麻煩,所以想要配置一些做個定時自動更新。

准備:

  其中,

  certbot-auto  執行命令,可以對證書進行申請更新刪除等一系列操作

  dns_script  調用連接服務器控制台設置DNS校驗記錄的腳本

  pytz  python的一個模塊

 

一、下載hook功能的腳本文件

  git clone https://github.com/ywdblog/certbot-letencrypt-wildcardcertificates-alydns-au.git

  目錄內容:

  

  python-version里的腳本是python環境使用的,外面的腳本是PHP環境使用的,都是同一種效果

二、獲取AccessKeyID和AccessKeySecret,登錄服務器控制台

  

三、更新腳本

  我使用的是python腳本,修改里面變量ACCESS_KEY_ID和變量ACCESS_KEY_SECRET的值為上一步得到的ID和密碼

  並且要賦予兩個腳本的執行權限(這個很重要,我之前就忘記了,浪費了很多時間)

四、默認的python缺少pytz模塊,而腳本里用到了pytz

  pip install wheel
  pip install pytz-2018.6-py2.py3-none-any.whl

五、更新測試

  ./certbot-auto renew --cert-name scdsc.org.cn --preferred-challenges dns-01 --manual-auth-hook dns_script/python-version/au.sh --dry-run

  其中,

    --cert-name  指定更新哪個證書

    --manual-auth-hook  指定使用更新DNS記錄的腳本

    --dry-run  測試更新,並不會真的更新

    --preferred-challenges  應該可以不用加,因為執行更新命令會自動去調取cert的配置文件,里面有各種參數

  ./certbot-auto renew --cert-name scdsc.org.cn --preferred-challenges dns-01 --manual-auth-hook dns_script/python-version/au.sh --force-renew

    --force-renew  強制更新,由於證書可使用時間還很長,加上此選項便可以強制更新了

六、更新成功,然后定時任務執行更新命令

  

 

詳情參考:

  生成DNS校驗記錄:https://github.com/ywdblog/certbot-letencrypt-wildcardcertificates-alydns-au

  pytz模塊包下載:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pytz

 


免責聲明!

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



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