本文記錄和介紹使用 和 DNSPod 的 API 通過 DNS 驗證的方式來配置和自動更新 Let’s Encrypt 免費證書。 1. 安裝 安裝 非常簡單,可以使用 root 用戶也可以使用普通用戶安裝,簡單使用以下命令即可: curl https://get. | sh
安裝完成后,可執(zhí)行文件在當前用戶目錄下 ~/./ ,我們給這個 bash 設定一個 alias,方便使用: alias =~/./
2. 生成 DNSPod API Key 和 ID登陸自己的 DNSPod 帳戶,點擊自己頭像,選擇密鑰管理,添加一個密鑰,將 ID 和 Token 記錄下來: 3. 簽發(fā)證書3.1 配置環(huán)境變量首先為 配置環(huán)境變量,在服務器上輸入以下代碼: export DP_Id='1234'
export DP_Key='sADDsdasdgdsf'
注意替換自己的 DNSPod API Key 和 ID。 3.2 簽發(fā)證書 --issue --dns dns_dp -d ethanblog.com -d *.ethanblog.com
以上命令為 ethanblog.com 簽發(fā)了主域名和泛域名證書,并且自動添加了 crontab 定期任務,每天 0:00 自動檢測所有的證書, 如果快過期了, 需要更新, 則會自動更新證書。 3.3 更新證書目前證書在 60 天以后會自動更新, 你無需任何操作. 今后有可能會縮短這個時間, 不過都是自動的, 你不用關心。 4. 安裝證書簽發(fā)的證書默認存儲在安裝目錄下: ~/./,建議不要直接使用此目錄下的文件,例如:不要直接讓 nginx/apache 的配置文件使用這下面的文件。這里面的文件都是內(nèi)部使用,而且目錄結構可能會變化。 正確的使用方法是使用 –installcert 命令,并指定目標位置,然后證書文件會被 copy 到相應的位置,例如: --installcert -d ethanblog.com --cert-file /home/docker/web/nginx/ssl/ethanblog.com/chain.pem --key-file /home/docker/web/nginx/ssl/ethanblog.com/privkey.pem --fullchain-file /home/docker/web/nginx/ssl/ethanblog.com/fullchain.pem --reloadcmd 'docker container restart 2f0e2bb'
需要注意的是最后指定 reloadcmd,當證書更新以后,reloadcmd 會被自動調(diào)用,讓服務器生效。以上示例為重啟了 nginx 的 docker。如果是 Apache 或者 nginx,分別使用 --reloadcmd 'service apache2 force-reload' 或 --reloadcmd 'service nginx force-reload' 即可。 此外,這里指定的所有參數(shù)都會被自動記錄下來,并在將來證書自動更新以后,被再次自動調(diào)用。
|