CloudFlare DNS 申請 Let’s Encrypt Wildcard SSL 憑證


佛系 Let’s Encrypt Wildcard SSL 憑證

以前我都用官方提供的 certbot 工具,後來也嘗試用 PHP 第三方 Library 整合了可以自動申請 Let’s Encrypt SSL 憑證的 Docker (ssl-proxy)。今年 2018 開始佛系 Let’s Encrypt 有提供 Wildcard SSL 憑證,但是目前只有透過 DNS 設定 Text Record 來驗證網域,每三個月都要重新驗證來換發新的憑證(renew),如果沒有自動化一點也不想嘗試。最近想要試用看看 Wildcard SSL,發現已經很多人實做了整合 CloudFlare 的驗證工具,官方的 certbot 也有 CloudFlare DNS Plugin 可以用。剛好我也是 CloudFlare 的使用者,只要可以自動化那就 OK 囉,我們來看看如何安裝吧。

安裝第三方工具 acme.sh

acme.sh 是一個第三方的 Let’s Encrypt 申請工具,我本來都是用官方提供的 certbot 工具。最近發現這個工具申請 Wildcard SSL 也不錯用,順便介紹給大家使用看看。直接線上安裝:

由於 Let’s Encrypt Wildcard SSL 需要透過更改 DNS Text Record 來驗證網域所有權,因此我們先登入 CloudFlare 取得 API Key,好讓 acme.sh 可以自動更新 DNS 資訊來通過驗證。登入 CloudFlare 後險選擇右上角的 Profile,如下:

lets-encrypt-wildcard-profile

選擇 Global API Key 按下後面的「View」按鈕:

lets-encrypt-wildcard-api

接著輸入密碼:

lets-encrypt-wildcard-api-pwd

顯示個這一串就是 API Key,請非常小心保存,這組 Key 可以做什麼不要問,很恐怖。被惡意盜用會讓你作惡夢的.......

eat-hand

先複製起來後關閉,如下:

lets-encrypt-api-key

透過 acme.sh 申請 Wildcard SSL 憑證

先透過以下方式設定 acme.sh 驗證需要的 CloudFlare 登入 Email 與剛剛取得的 Key,有了這組 Key 你的 CloudFlare 上面管理的 DNS 都可以進行驗證,如下:

接著我們設定需要驗證的網域到變數中:

我習慣憑證與官方 certbot 所產生的資料放在一起,所以先手動建立一下目錄:

然後就可以輸入以下命命開始申請了,整個驗證過程差不多兩分鐘多:

記得每三個月 cron 跑一下重新刷新憑證就好,刷新時候透過 --renew 即可,如下:

上述 Script 也可以在 Blog 廢文 GitHub 取得,啊掰~

如果有人能幫我按五次 Like (按好按滿) 或者分享一下那該有多好~

這是真的廣告

白金贊助

平價童鞋首選

Facebook 留言