改用 Let’s Encrypt 的 certificates

之前都在用 StartSSL 的免費 certificate,雖知道有 Let’s Encrypt,但因手邊幾乎都轉用 nginx,遲遲沒下手。

約莫一週前 zeroplex 丟了這個網頁:「Why I stopped using StartSSL (Hint: it involves a Chinese company)」,三、四天前 DK 大神也撰文提及,就決定趁週末沒什麼事來動工…

用 DK 大神在一個月前撰文提過的 letsencrypt.sh 這個 GitHub 專案可以輕鬆搞定,步驟大致如下…

  1. 找個自己喜歡的目錄(不是 /tmp …),把 letsencrypt.sh clone 出來
  2. 在 clone 出來的目錄之下建立 .acme-challenges 目錄
    mkdir letsencrypt.sh/.acme-challenges
  3. 在原本的 HTTP (80 port) 設定下建立 alias,把網站的 /.well-known/acme-challenge 指向剛建立好的目錄
  4. 讓 HTTP daemon 重讀設定
  5. 執行這個指令
    letsencrypt.sh/letsencrypt.sh -c -d {網站hostname}
  6. 完成 & 成功後就會在 letsencrypt.sh/certs 發現目錄,目錄下有數個檔案
  7. 我自己讓 nginx 使用 fullchain.pem 跟 privkey.pem,設定大致如下:
    server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
    
        ssl on;
        ssl_certificate /SOMEWHERE/letsencrypt.sh/certs/{網站hostname}/fullchain.pem;
        ssl_certificate_key /SOMEWHERE/letsencrypt.sh/certs/{網站hostname}/privkey.pem;
        ssl_trusted_certificate /SOMEWHERE/letsencrypt.sh/certs/{網站hostname}/fullchain.pem;
        ....
    }
    

我記得 Let’s Encrypt 的 certificate 要在 90 天內 renew,所以 cron job 這樣放:

0 0 1 */2 * /SOMEWHERE/letsencrypt.sh/letsencrypt.sh -c -d {網站hostname} > /dev/null 2>&1
這篇噗共有1個回應,點這裡查看plurk頁面[+][-]
最近的 plurk 回應:
掰噗~喜歡太棒了!! (applause)