前言
上次寫了一篇https證書相關的筆記整理,個人覺得有些地方欠妥,這次介紹一個更方便更簡單更?一點的工具——acme.sh.上次使用的工具是certbot.
兩者對比,acme.sh有如下優點:
- acme.sh會自動設定好定時任務.自動更新證書.certbot的更新需要手動設定cron.
- acme.sh可以使用域名解析商提供的 api 自動新增 txt 記錄完成驗證.簡單、高效.
- 安裝簡單,沒有環境依賴.解除安裝同樣簡單.
安裝
# 建議使用root安裝,
curl https://get.acme.sh | sh
複製程式碼
該命令會把acme安裝在~/.acme.sh路徑下,併為你建立一個檢查更新證書的定時任務.
因為該工具有個引數reloadcmd可以預設命令,可能會reload nginx伺服器等.建議使用root安裝.
#檢視定時任務
crontab -l
23 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
# --home --cron引數解釋可用~/.acme.sh/acme.sh -h檢視,解釋如下
--home Specifies the home dir for acme.sh.指定acme的路徑
--cron Run cron job to renew all the certs.定時檢查更新證書
複製程式碼
簽發證書(Issue a cert)
簽發證書前,需要驗證域名的所有權,acme支援多種方式驗證,建議使用http和dns驗證.
我的個人域名解析使用的是cloudflare的free套餐,且acme文件寫明支援cloudflare.所以選擇dns驗證.
1.登入cloudflare官網獲取API key.
#cloudflare-->個人配置--->API key - Global API Key - view API key
# 拿到API key後,設定如下環境變數.
export CF_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export CF_Email="xxxx@sss.com"
複製程式碼
接下來就可以愉快的申請證書了.
申請證書命令如下:
acme.sh --issue -d glc.im -d *.glc.im --dns dns_cf \
--key-file "/etc/nginx/ssl/glc.im/xxxx.key" \
--fullchain-file "/etc/nginx/ssl/fullchain.cer" \
--reloadcmd "service nginx reload"
複製程式碼
- glc.im /*.glc.im換成自己的域名
- dns_cf是對應的cloudflare,其他域名解析服務商請參照https://github.com/Neilpang/acme.sh/wiki/dnsapi
- key-file/fullchain-fil 簽發證書後,acme會幫你把證書複製到該路徑下
- reloadcmd 因為是root安裝的acme 此命令可以幫助我過載nginx
更多內容
-
acme: github.com/Neilpang/ac…
-
如何使githu page跳轉到個人域名?
-
如何強制跳轉https?