在 Linux (Ubuntu) 導入 Let’s Encrypt (snap 版)(for Apache)

文章更新時間:2021-11-25

環境:

OS: Ubuntu 18.04 LTS
Web server: Apache: 2.4

初始化:

安裝流程參閱官方內容即可:https://certbot.eff.org/instructions?ws=apache&os=ubuntu-18

單一主機名稱 (Single host) 步驟:

  1. 開始自動化設定 (for apache) ./certbot --apache
  2. 選擇要簽發憑證的主機名稱
  3. 選擇未來的連線方式
    1. HTTP, HTTPS 並存
    2. 全部導向 HTTPS (會自動在該主機設定檔加上 rewrite rule)
  4. 測試是否正常簽發 https://www.ssllabs.com/ssltest/analyze.html?d=[主機名稱]

Wildcard Certificate 步驟:

  1. 採用手動設定,挑戰模式採用 DNS TXT 紀錄: ./certbot certonly --manual --preferred-challenges dns --agree-tos --email yourname@example.com -d "*.yourdomain.com,yourdomain.com"
  2. 接下來會出現要加入 DNS TXT 的內容:
  3. 加入後用以下指令確認是否已經生效:
    [Linux] dig _acme-challenge.yourdomain.com txt
    [Windows] nslookup -q=txt _acme-challenge.yourdomain.com
  4. 生效後按下 Enter
  5. 由於本範例登錄了 *.yourdomain.com 及 yourdomain.com 兩個域名,所以 2~3 步驟會跑兩次(請注意那個挑戰用的值 xxxxxxxx 每次都不同,此外,不要刪除前一個 TXT Record 而是建立同名的第二個 TXT Record)
  6. 等第二個生效等了一段時間,因為要看主機的 TTL
  7. 以後還是得使用以上相同流程來更新憑證
  8. 由於此方式僅申請憑證但沒有自動設定到 Web Server,所以後續要自己手動設定

維護:

  • 列出所有憑證: ./certbot certificates
  • 更新所有憑證: ./certbot renew
  • 更新單一憑證: ./certbot renew --cert-name [憑證名稱]
  • 刪除憑證: ./certbot delete --cert-name [憑證名稱]

Reference:

分類: 雜記。這篇內容的永久連結