原本我就有使用 Let's Encrypt 的 SSL 憑證,而前陣子他們推出了 Wildcard 憑證,於是最近就更新上去了。
Wildcard 憑證最重要的就是,你網域下的所有 subdomain 都可以直接使用該憑證,不用像以前那樣需要每新增一個 subdomain,就要重簽一次憑證給新增的 subdomain。
要升級上去很簡單,首先下載 certbot-auto
wget https://dl.eff.org/certbot-auto
接著,檢查 /etc/letsencrypt 下面如果有任何檔案名稱是以你的網域命名的,就全部刪掉,如果不刪掉的話新增的證書會叫做像是 yourdomain.com-0001 這樣的名稱,因為我不喜歡這樣有後綴的名稱所以就把舊的檔案都刪除了。
接下來輸入指令:
1 |
./certbot-auto certonly --manual -d "*.yourdomain.com" -d "yourdomain.com" --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory |
注意要新增有星號跟沒星號的兩種,否則連到沒有 subdomain 的 yourdomain.com 會找不到證書。
再來,會要求你新增 TXT 紀錄:
1 2 3 4 5 6 |
Please deploy a DNS TXT record under the name _acme-challenge.hiraku.tw with the following value: jpdT9AhZ1GzCfTnWWb53slKWL2xGsDKbhA76U6OuCOU Before continuing, verify the record is deployed. |
就按照顯示的內容,到你的伺服器上面新增 TXT 紀錄,因為我們剛剛輸入了兩種 domain,所以這邊需要新增兩次。(按下 Enter 之後會顯示另外一個的 token)。由於 DNS 紀錄新增需要等待一些時間,所以我們先把 TTS 設定為最短的時間(5 分鐘)
接著再到這個網站查詢你的 TXT 紀錄,直到穩定出現對應 token 的值為止(注意要兩個 token 都出現),這時候才回到 certbot-auto 裡面按確定。
由於我是升級舊的證書,所以 nginx 設定就不需要調整,直接用舊的就好了,但是要重新開啟 web server 以生效(service nginx restart)
最後,設定 crontab,讓 certbot-auto renew
這個指令每天固定時間執行就好了。
發佈留言