Let's Encrypt 通過DNS TXT記錄互動模式手動續期
Let’s Encrypt 通過DNS TXT記錄互動模式手動續期
前言
在做天貓精靈和Domoticz對接時需要域名必須是HTTPS的,由於域名是西部數碼註冊的,在網上沒有找到西部數碼域名的自動化解析指令碼,西部數碼網站上也沒找到相關的控制API,還好Let’s Encrypt支援通過DNS TXT記錄的方式申請SSH證書,於是通過DNS TXT進行了證書申請,申請方法參考的是:Letsencrypt通過DNS TXT記錄來驗證域名有效性
續期
很快,三個月時間到了,證書需要續期,在網上找了好久都是通過指令碼自動執行的方式進行續期的,在這裡都不適用,通過參考各種資料和摸索,找到以下方法供參考:
sudo certbot certonly --renew-by-default -d YOURDOMAIN --manual --preferred-challenges dns
certonly
只申請證書
--renew-by-default
通過預設配置更新證書
-d YOURDOMAIN
需要更新證書的域名
--manual
互動方式執行
--preferred-challenges dns
通過DNS TXT記錄的方式進行認證
執行以上命令後返回如下結果:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Renewing an existing certificate Performing the following challenges: dns-01 challenge for YOURDOMAIN ------------------------------------------------------------------------------- NOTE: The IP of this machine will be publicly logged as having requested this certificate. If you're running certbot in manual mode on a machine that is not your server, please ensure you're okay with that. Are you OK with your IP being logged? ------------------------------------------------------------------------------- (Y)es/(N)o:
輸入 Y後返回:
------------------------------------------------------------------------------- Please deploy a DNS TXT record under the name _acme-challenge.YOURDOMAIN with the following value: Fhx3AXM****************e4TchYU Once this is deployed, ------------------------------------------------------------------------------- Press Enter to Continue
此時登入域名管理後臺,新增_acme-challenge.YOURDOMAIN
域名的TXT記錄,值為Fhx3AXM****************e4TchYU
,儲存後輸入以下命令進行確認已經正常解析:
dig -t txt _acme-challenge.YOURDOMAIN
如果返回結果中有上面填寫的值說明已經新增並解析成功,此時返回證書更新介面按回車繼續.正常情況下會返回如下結果.
Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0001_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0001_csr-certbot.pem
後面還會有重要提示,包含到期時間,在此不再貼出.
結語
通過以上方法即可通過手動方式進行域名證書的更新,此方法適用於域名無法通過自動化指令碼解析的情況,對於能夠通過自動化指令碼進行解析的域名建議通過自動更新的方式進行更新,網上方法很多,在此不再列出.