文章更新時間:2019-03-13
環境:
OS: Ubuntu 18.04 LTS
Web server: Apache: 2.4
初始化:
- 如果還沒裝 git 的話:
sudo apt-get install git - cd /opt
- sudo git clone https://github.com/certbot/certbot
- cd certbot
- 自動化安裝依存套件以建立起執行環境:
./certbot-auto
單一主機名稱 (Single host) 步驟:
- 開始自動化設定 (for apache)
./certbot-auto --apache - 選擇要簽發憑證的主機名稱
- 選擇未來的連線方式
- HTTP, HTTPS 並存
- 全部導向 HTTPS (會自動在該主機設定檔加上 rewrite rule)
- 測試是否正常簽發
https://www.ssllabs.com/ssltest/analyze.html?d=[主機名稱]
Wildcard Certificate 步驟:
- 採用手動設定,挑戰模式採用 DNS TXT 紀錄:
./certbot-auto certonly --manual --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory --agree-tos --email yourname@example.com -d "*.yourdomain.com,yourdomain.com" - 接下來會出現要加入 DNS TXT 的內容:
- 加入後用以下指令確認是否已經生效:
[Linux] dig _acme-challenge.yourdomain.com txt
[Windows] nslookup -q=txt _acme-challenge.yourdomain.com - 生效後按下 Enter
- 由於本範例登錄了 *.yourdomain.com 及 yourdomain.com 兩個域名,所以 2~3 步驟會跑兩次(請注意那個挑戰用的值 xxxxxxxx 每次都不同,此外,不要刪除前一個 TXT Record 而是建立同名的第二個 TXT Record)
- 等第二個生效等了一段時間,因為要看主機的 TTL
- 以後還是得使用以上相同流程來更新憑證
- 由於此方式僅申請憑證但沒有自動設定到 Web Server,所以後續要自己手動設定
維護:
- 列出所有憑證:
./certbot-auto certificates - 更新所有憑證:
./certbot-auto renew - 更新單一憑證:
./certbot-auto renew --cert-name [憑證名稱] - 刪除憑證:
./certbot-auto delete --cert-name [憑證名稱]
Reference:
Issues:
- 如果發生 couldn't get currently installed version 錯誤的話,解決辦法 https://github.com/certbot/certbot/issues/4776