Ubuntu 搭配 Nginx 安裝 Let’s Encrypt Wildcard SSL

前言

去年 Let’s Encrypt 開放申請 Wildcard SSL,

剛好最近有個域名尚未使用 SSL,

趁機記錄一下安裝過程。

安裝流程

本次安裝的環境如下:

Ubuntu LTS 16.04、Nginx 並使用 CloudFlare 做為 DNS Provider。

1. 新增 Certbot PPA

sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update

2. 安裝 Certbot

sudo apt-get install certbot python-certbot-nginx

3. 安裝 CloudFlare 的 DNS plugin

sudo apt-get install python3-certbot-dns-cloudflare

4. 取得 CloudFlare 的 Global API Key

https://www.cloudflare.com/a/account/my-account

5. 新增 cloudflare.ini,並給予權限 600,下為範例內容:

dns_cloudflare_email = [email protected]
dns_cloudflare_api_key = 0123456789abcdef0123456789abcdef01234567

6. 取得憑證,以 example.comwww.example.com 為例:

certbot certonly \
  --dns-cloudflare \
  --dns-cloudflare-credentials cloudflare.ini \
  -d example.com \
  -d www.example.com

7. 設定自動更新

sudo certbot renew --dry-run

8. 更新 Nginx 設定,這個步驟會偵測原有的 Virtual Host,並加入 SSL 的設定,基本上會問你要設定哪些域名、是否轉址 (HTTP to HTTPS)。

sudo certbot --nginx

9. 檢查 SSL,到下列網站輸入欲檢驗的網址:

https://www.ssllabs.com/ssltest/

後記

上述流程基本上是官方文件直接中譯,

本次安裝覺得卡的地方大概是 DNS plugin 那段,

因為不知道要用 Global Key。

有什麼想法嗎?快來跟大家分享你的看法。