Nginx 搭配Let’s Encrypt Certbot自動更新SSL憑證 運行環境 Ubuntu 22.04 下載certbot apt install certbot python3-certbot-nginx certbot certonly --nginx -d your_frontend_fqdn 輸入電子郵件用於通知 成功取得SSL憑證 Saving debug log to /var/log/letsencrypt/letsencrypt.log Requesting a certificate for your_frontend_fqdn Successfully received certificate. Certificate is saved at: /etc/letsencrypt/live/your_frontend_fqdn/fullchain.pem Key is saved at: /etc/letsencrypt/live/your_frontend_fqdn/privkey.pem 修改Nginx設定 listen 443 ssl; ssl_certificate /etc/letsencrypt/live/your_frontend_fqdn/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/your_frontend_fqdn/privkey.pem; nginx -t systemctl restart nginx 登入網站確認可使用https瀏覽 測試憑證 #手動更新憑證 certbot renew #測試更新憑證 certbot renew --dry-run #確認憑證狀態 certbot certificates 使用CertBot 自動更新憑證 確認certbot.timer是否有啟動 systemctl status certbot.timer 編輯 /lib/systemd/system/certbot.service ,修改ExecStart [Unit] Description=Certbot Documentation=file:///usr/share/doc/python-certbot-doc/html/index.html Documentation=https://certbot.eff.org/docs [Service] Type=oneshot ExecStart=/usr/bin/certbot -q renew --post-hook "systemctl reload nginx" PrivateTmp=true systemctl start certbot.service 如無錯誤訊息代表設定成功 user@nginx-proxy:~# service certbot status * certbot.service - Certbot Loaded: loaded (/lib/systemd/system/certbot.service; static) Active: inactive (dead) since Thu 2025-07-17 15:30:48 CST; 11min ago TriggeredBy: * certbot.timer Docs: file:///usr/share/doc/python-certbot-doc/html/index.html https://certbot.eff.org/docs Process: 3737646 ExecStart=/usr/bin/certbot -q renew --post-hook systemctl reload nginx (code=exited, status=0/SUCCESS) Main PID: 3737646 (code=exited, status=0/SUCCESS) CPU: 8.533s Jul 17 15:28:06 nginx-proxy systemd[1]: Starting Certbot... Jul 17 15:30:48 nginx-proxy systemd[1]: certbot.service: Deactivated successfully. Jul 17 15:30:48 nginx-proxy systemd[1]: Finished Certbot. Jul 17 15:30:48 nginx-proxy systemd[1]: certbot.service: Consumed 8.533s CPU time.