[SSL] Nginx 整合 Certbot 替網站加上 SSL
前言
上一篇架設完 Server 後會發現網站是未加密的狀態,因此瀏覽器會將該網站標示為 **”不安全”**,本文記錄如何替網站加上 SSL 憑證進行加密。
環境
- OS: Ubuntu 18.04
- Server: Nginx 1.14
下載 Certbot
1 |
|
確認 Nginx’s 設定檔
上一篇有提到Nginx的相關設定,查看一下
1 |
|
確認填寫的網址server_name example.com www.example.com;
若遇到inactive
的狀況,則執行sudo ufw enable
1 |
|
取得 SSL Certificate
使用 nginx 執行 certbot,並使用-d
指定我們希望的網域名稱,對其發行 certificates。
1 |
|
系統會要求輸入email,輸入完畢後再選擇Agree。接著會詢問選擇是否要將所有的資源請求導向HTTPS的網域,故選擇2
更新 SSL certificates
1 |
|
若出現錯誤訊息: sudo: cerbot: command not found
,可以採用以下方式。
找出certbot路徑
1 |
|
接著執行下方指令,將certbot_path
替換成剛剛拿到的路徑名稱
1 |
|
設定成功的訊息
自動更新憑證
由於 Let’s Encrypt 憑證簽發為每三個月一次,也就是每 90 天必須更新(renew)一次,雖然 SSL For Free 提供訂閱通知的機制,在憑證過期前會收到電子郵件告知你要更新憑證。
不過身為一位工程師,秉持能自動就不要手動的精神,我們可以藉由 crontab 設置排程工作定期幫我們更新 SSL 憑證。
確認憑證狀態
1 |
|
會出現類似下方訊息
1 |
|
上述資訊可看出憑證距離到期還有多久的時間
設置排程工作
1 |
|
寫入排程規則
下方指令以固定每月1號進行 renew SSL 憑證為例,其中 --quiet
表不產生輸出結果
1 |
|
想了解更多排程規則可以試試這個網站,幫助大家能快速了解自己設的規則