Let’s Encrypt 證書有效期為 90 天。建議在第 60 天之前續簽,留出安全餘量。以下是透過 GetHTTPS(手動)和 Certbot(自動)續簽的方法。
方法一:使用 GetHTTPS 續簽(手動)
重複獲取原始證書時的相同步驟:
- 訪問 gethttps.com/app/setup
- 輸入相同的域名
- 完成 HTTP-01 或 DNS-01 驗證(與之前相同)
- 下載新的證書檔案
- 替換伺服器上的舊檔案:
sudo cp fullchain.pem /etc/ssl/gethttps/fullchain.pem sudo cp privkey.pem /etc/ssl/gethttps/privkey.pem sudo systemctl reload nginx # or apache2/httpd
耗時: 熟練後 2-3 分鐘。
適用場景: 無法安裝 Certbot、管理的域名較少、或不想安裝額外軟體。
方法二:使用 Certbot 自動續簽
如果伺服器上已安裝 Certbot,續簽會自動進行:
# Check if auto-renewal is set up
sudo systemctl list-timers | grep certbot
# Manual dry-run to test
sudo certbot renew --dry-run
# Force renewal now
sudo certbot renew
Certbot 的 systemd 定時器(或 cron 任務)每天執行兩次,會在過期前 30 天內自動續簽。
適用場景: 有伺服器 root 許可權,希望完全自動化續簽。
如何檢視證書過期時間
# Check from the server
openssl x509 -noout -enddate -in /etc/ssl/gethttps/fullchain.pem
# Check remotely
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -enddate
輸出示例:notAfter=Aug 5 12:00:00 2026 GMT
設定提醒
- 第 0 天: 證書籤發(有效期 90 天)
- 第 60 天: 續簽(推薦 — 30 天安全餘量)
- 第 90 天: 證書過期 — 網站顯示安全警告
為第 60 天設定日曆提醒。如果管理多個域名,使用監控服務來提前預警即將過期的證書。
分步操作:使用 GetHTTPS 續簽
以下是手動續簽的完整流程:
-
檢查當前過期時間(可選但推薦):
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -enddate -
輸入與原證書相同的域名
-
完成驗證 — 與首次申請相同:
- HTTP-01:在伺服器上放置新的 token 檔案
- DNS-01:用新值更新
_acme-challengeTXT 記錄
-
下載新的證書檔案
-
在伺服器上替換:
sudo cp fullchain.pem /etc/ssl/gethttps/fullchain.pem sudo cp privkey.pem /etc/ssl/gethttps/privkey.pem -
過載 Web 伺服器(是 reload 而非 restart — reload 在不斷開現有連線的情況下載入新檔案):
sudo systemctl reload nginx # Nginx sudo systemctl reload apache2 # Apache/Debian sudo systemctl reload httpd # Apache/CentOS -
驗證新證書已生效:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -dates
整個過程:熟練後 2-3 分鐘。
續簽方式對比:手動 vs 自動
| GetHTTPS(手動) | Certbot(自動) | |
|---|---|---|
| 每次續簽耗時 | 2-3 分鐘 | 零(cron 任務) |
| 所需伺服器許可權 | 僅需替換檔案的許可權 | 完全 root 許可權 |
| 失敗檢測 | 網站出問題時才發現 | Certbot 日誌 + 可配置失敗郵件通知 |
| 最適合 | 1-5 個域名、無 root 許可權 | 生產伺服器、大量域名 |
| 遺忘風險 | 中等(務必設定提醒!) | 低(自動化) |
對於有 root 許可權的生產伺服器,配置 Certbot 自動續簽。對於沒有 root 許可權的環境,GetHTTPS 手動續簽是唯一選擇。
47 天有效期的未來
CA/Browser Forum 已投票決定縮短證書最長有效期:
| 生效日期 | 最長有效期 |
|---|---|
| 當前 | 90 天(Let’s Encrypt) |
| 2026 年 3 月 | 200 天 |
| 2027 年 3 月 | 100 天 |
| 2029 年 3 月 | 47 天 |
到 2029 年,你大約每 30-35 天就需要續簽一次。這使得自動續簽(Certbot)變得越來越重要。對於手動工作流(GetHTTPS),建議設定更頻繁的提醒。
常見問題
證書過期前可以續簽嗎?
可以。Let’s Encrypt 允許隨時續簽。新證書以新的 90 天有效期開始。提前續簽不會浪費剩餘時間 — 它只是替換舊證書。
每次續簽都需要重新驗證嗎?
是的。每次續簽都需要新的域名驗證。這是安全特性 — 確認你仍然控制著該域名。
續簽會導致停機嗎?
正確操作的話不會。上傳新檔案後過載(而非重啟)Web 伺服器。nginx -s reload 和 apachectl graceful 會將新證書應用於新連線,不會斷開現有連線。
可以用 GetHTTPS 獲取首張證書,然後用 Certbot 續簽嗎?
可以。證書檔案是標準 PEM 格式。你可以用 GetHTTPS 生成第一張證書,然後安裝 Certbot 進行後續自動續簽。兩者互不衝突。詳細對比 →
證書過期了怎麼辦?
你的網站會顯示瀏覽器安全警告,但修復很簡單:訪問 GetHTTPS,獲取新證書,替換檔案,過載伺服器。5 分鐘搞定。Let’s Encrypt 不會因為證書過期而懲罰你 — 直接申請新證書即可。
續簽時需要使用同一金鑰對嗎?
不需要。GetHTTPS 每次都會生成新的金鑰對,這實際上是更好的安全實踐(金鑰輪換)。伺服器不在乎新證書是否使用了不同的金鑰 — 只要同時替換 fullchain.pem 和 privkey.pem 即可。
如何續簽萬用字元證書?
與首次申請相同:訪問 GetHTTPS,輸入 *.example.com,在 DNS 中新增新的 _acme-challenge TXT 記錄,驗證,下載。每次續簽都需要 DNS 訪問許可權,因為萬用字元證書必須使用 DNS-01。