上次寫了一篇https證書相關的筆記整理,我的以爲有些地方欠妥,此次介紹一個更方便更簡單更🐂一點的工具——acme.sh.上次使用的工具是certbot.nginx
二者對比,acme.sh有以下優勢:git
# 建議使用root安裝,
curl https://get.acme.sh | sh
複製代碼
該命令會把acme安裝在~/.acme.sh路徑下,併爲你建立一個檢查更新證書的定時任務.github
由於該工具備個參數reloadcmd能夠預設命令,可能會reload nginx服務器等.建議使用root安裝.shell
#查看定時任務
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.定時檢查更新證書
複製代碼
簽發證書前,須要驗證域名的全部權,acme支持多種方式驗證,建議使用http和dns驗證.api
個人我的域名解析使用的是cloudflare的free套餐,且acme文檔寫明支持cloudflare.因此選擇dns驗證.bash
依照acme文檔-how-to-use-dns-api,服務器
1.登陸cloudflare官網獲取API key.curl
#cloudflare-->我的配置--->API key - Global API Key - view API key
# 拿到API key後,設置以下環境變量.
export CF_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export CF_Email="xxxx@sss.com"
複製代碼
接下來就能夠愉快的申請證書了.工具
申請證書命令以下:post
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"
複製代碼
acme: github.com/Neilpang/ac…
如何使githu page跳轉到我的域名?
如何強制跳轉https?