前言
個人站點一直使用阿里云的免費SSL證書,但有效期只有3個月,一旦忘記更新訪問就會有警告,不僅麻煩體驗非常的不好。ChatGPT推薦使用Let's Encrypt 提供的免費 SSL 證書,雖然Let's Encrypt 的免費證書同樣有效期是3個月,可以通過 certbot 自動安裝和續期,非常的方便。
安裝步驟(基于Ubuntu 22.04.4)
1. 安裝 Certbot
sudo apt update
sudo apt install certbot python3-certbot-nginx
2. 為域名獲取 SSL 證書:
使用以下命令生成證書(確保域名已指向服務器 IP):
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
替換 yourdomain.com 和 www.yourdomain.com 為您的實際域名。Certbot 會自動配置 Nginx 以使用 SSL 證書。
Tips:
- 安裝過程中會要求輸入一個郵箱,并詢問郵箱是否可以被公開或發送一些最新資訊。
-
如果安裝失敗則需要從命令行的輸出中找出證書存儲的位置手動安裝即可(如下圖)
證書存儲的位置
配置完成后的配置文件如下:
server {
.......
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /etc/letsencrypt/live/jygf.site/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/jygf.site/privkey.pem; # managed by Certbot
server_name yourdomain.com *.yourdomain.com;
......
}
Tips: 手動安裝完成后,執行以下命令完成部署:
sudo certbot install --cert-name yourdomain.com
3. 自動續期:
默認情況下 certbot
已經設置了后臺自動續期證書的任務。可以使用以下命令查詢:
systemctl list-timers
正常情況下是可以看到`certbot 的定時任務(如下圖):
certbot定時任務
如果沒有查詢到定時需求任務,執行以下命令手動添加:
sudo certbot renew --dry-run