Let's Encrypt 免費 Wildcard 萬用字元憑證 SSL/TLS for CentOS 7

在 CentOS 7 透過 Certbot 軟體來申請 Let's Encrypt 的萬用字元憑證 (Wildcard Certificates),就不用針對每個子網域申請一個對應的憑證,即可通用於所有子網域的網站。
Let's Encrypt 已經開始支援萬用字元憑證 (Wildcard Certificates),因此當有多個子網域時,也只須申請一個憑證即可。
站長所架設的網站為 WordPress Multi User (簡稱為 WPMU) 多用戶 (詳細教學可參考建置 WordPress MU 多子網域 HTTPS for CentOS 7 + NGINX + PHP 7),可以直接於後台新增子網域的網站,之前 Let's Encrypt 還沒有支援萬用字元憑證的時候,每新增一個子網域網站就必須申請一個對應的憑證,使用萬用字元憑證的方式後,即可通用於所有子網域的網站了,真是方便許多。
安裝軟體
Let's Encrypt 憑證取得方式不同與其它網站是在網頁上手動填寫申請資料的,而是須在 Server 上安裝一個 Client(python 寫的),這種作法所帶來的好處是可全自動化,這裡使用 Let's Encrypt 官方推薦的 Certbot Client,來自動取得、部署和更新 SSL 憑證。
首次安裝
安裝 EPEL 軟體擴充資源庫:
安裝 Certbot:
升級
如果先前已安裝 Certbot,但要使用 Let's Encrypt 萬用字元憑證,Certbot 的版本必須為 certbot 0.22.0 以上,先查看目前 certbot 版本:
如果不是 0.22.0 以上,就使用以下指令來更新所有軟體:
申請憑證
雖然萬用字元憑證可用於所有子網域,但如果與本站一樣是直接指定網域名稱的方式 (例如 smalljacky.com 而不是 www.smalljacky.com),就必須多指定一個域名(僅須將 -d 選項後的二個網址更換為自己的):
設定 DNS TXT 記錄
各個代管 DNS 平台的設定方式都差不多,這裡使用 GoDaddy 說明,名稱只需設定 _acme-challenge
即可 可省略:.smalljacky.com

使用 host
指令確認 DNS TXT 記錄 (須先安裝包含 host
指令的 bind-utils 軟體):
刪除憑證
憑證申請錯誤或是要更換時,就可以把沒用的憑證刪除。
檢查目前有幾個申請的憑證:
刪除不需要的憑證 smalljacky.com (結尾的 .conf 不須輸入):
Web server 設定
Apache(httpd)、Nginx 須設定的證書與密鑰保存路徑如上,設定新的憑證後 Web server 必須重新啟動才會生效 (詳細教學可參考 CentOS 7 Let’s Encrypt 免費 SSL/TLS 憑證 HTTPS 設置 for NGINX)。
自動續期憑證
Let's Encrypt 免費憑證有效期僅三個月,因此可使用建立憑證完成時所提示續訂證書指令的方式,來建立排程自動續期:
參考

本著作係採用創用 CC 姓名標示-相同方式分享 3.0 台灣 授權條款授權.