内容简介:以前我都用官方提供的 certbot 工具,後來也嘗試用 PHP 第三方 Library 整合了可以自動申請 Let’s Encrypt SSL 憑證的 Docker (ssl由於 Let’s Encrypt Wildcard SSL 需要透過更改 DNS Text Record 來驗證網域所有權,因此我們先登入 CloudFlare 取得 API Key,好讓 acme.sh 可以自動更新 DNS 資訊來通過驗證。登入 CloudFlare 後險選擇右上角的 Profile,如下:
佛系 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 也不錯用,順便介紹給大家使用看看。直接線上安裝:
curl https://get.acme.sh | sh
由於 Let’s Encrypt Wildcard SSL 需要透過更改 DNS Text Record 來驗證網域所有權,因此我們先登入 CloudFlare 取得 API Key,好讓 acme.sh 可以自動更新 DNS 資訊來通過驗證。登入 CloudFlare 後險選擇右上角的 Profile,如下:
選擇 Global API Key 按下後面的「View」按鈕:
接著輸入密碼:
顯示個這一串就是 API Key,請非常小心保存,這組 Key 可以做什麼不要問,很恐怖。被惡意盜用會讓你作惡夢的.......
先複製起來後關閉,如下:
透過 acme.sh 申請 Wildcard SSL 憑證
先透過以下方式設定 acme.sh 驗證需要的 CloudFlare 登入 Email 與剛剛取得的 Key,有了這組 Key 你的 CloudFlare 上面管理的 DNS 都可以進行驗證,如下:
export CF_Key="YOUR_CLOUD_FLARE_API_KEY" export CF_Email="YOUR_CLOUD_FLARE_LOGIN_EMAIL"
接著我們設定需要驗證的網域到變數中:
DOMAIN=your-domain.com
我習慣憑證與官方 certbot 所產生的資料放在一起,所以先手動建立一下目錄:
mkdir -p /etc/letsencrypt/keys mkdir -p /etc/letsencrypt/live/${DOMAIN}
然後就可以輸入以下命命開始申請了,整個驗證過程差不多兩分鐘多:
/root/.acme.sh/acme.sh --issue -d "${DOMAIN}" -d "*.${DOMAIN}" --dns dns_cf \ --key-file /etc/letsencrypt/keys/${DOMAIN}.key \ --cert-file /etc/letsencrypt/live/${DOMAIN}/cert.pem \ --fullchain-file /etc/letsencrypt/live/${DOMAIN}/fullchain.pem \ --ca-file /etc/letsencrypt/live/${DOMAIN}/chain.pem \ --reloadcmd "service haproxy restart"
記得每三個月 cron 跑一下重新刷新憑證就好,刷新時候透過 --renew 即可,如下:
/root/.acme.sh/acme.sh --renew -d "${DOMAIN}" -d "*.${DOMAIN}" --dns dns_cf
上述 Script 也可以在 Blog 廢文 GitHub 取得, 啊掰~
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。