SSL 憑證到期怎麼辦?檢查、自動續期與失敗告警完整指南
SSL 憑證過期會讓瀏覽器警告、API 與付款流程中斷。這篇整理到期日檢查、Certbot 自動續期、dry run、DNS 驗證、服務 reload、監控告警與搬家後常見故障。

SSL 憑證不是設定一次就永遠有效。
真正可靠的 HTTPS 維運,包含自動續期、服務重新載入、外部監控與失敗通知。少任何一層,網站都可能在某天突然亮出安全警告。
先查憑證到期日
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null \
| openssl x509 -noout -issuer -subject -dates
檢查:
notAfter到期日- 憑證包含正確網域與 www
- issuer 是否符合預期
- 瀏覽器實際拿到的是新憑證
不要只看主機後台顯示「已續期」。CDN、Load Balancer 或 Web Server 仍可能提供舊憑證。
為什麼自動續期仍會失敗
常見原因:
- 網域搬家後 DNS 指向改變
- HTTP-01 驗證路徑被 redirect、WAF 或權限擋住
- DNS-01 API token 過期或權限不足
- Certbot timer/cron 沒執行
- 續期成功但 Nginx、Apache 沒 reload
- 申請時使用 manual plugin,卻沒有驗證 hook
- 伺服器防火牆或 80/443 port 異常
Certbot 自動續期怎麼檢查
多數 Certbot 安裝方式會預先建立排程。先查看:
systemctl list-timers | grep certbot
再做不真正換證的測試:
sudo certbot renew --dry-run
Certbot 官方文件指出,certbot renew 適合排程執行,只會處理已接近續期門檻的憑證。若原本用 manual plugin,除非搭配 authentication hook,否則通常無法完全自動續期。
HTTP-01 與 DNS-01 怎麼選
| 驗證方式 | 適合 | 風險點 |
|---|---|---|
| HTTP-01 | 一般網站、可公開 80 port | redirect、WAF、容器路徑 |
| DNS-01 | Wildcard、無法開 80 port | DNS API 權限與憑證 |
DNS-01 的 API token 應使用最小權限,不能為了方便放整個 DNS 帳號的全域金鑰。
續期後要驗證服務真的換證
完整流程:
排程執行
→ ACME 驗證成功
→ 新憑證寫入
→ Web Server reload
→ 外部連線取得新憑證
→ 監控確認到期日已延長
可以用 deploy hook 在成功續期後 reload 服務,但 hook 也要有錯誤處理。不要只看 Certbot exit code,應從外部重新連線驗證。
告警怎麼設
建議至少設三段:
- 30 天:通知維護者檢查自動續期
- 14 天:提高優先級並人工測試
- 7 天:緊急處理
若是自動管理的短效憑證,告警門檻可依憑證週期調整。監控應從外部檢查正式網域,而不是只讀伺服器檔案。
CDN 與代管平台要注意什麼
Cloudflare、Zeabur、Vercel 等平台可能代管 edge certificate。你仍要確認:
- edge 與 origin 之間是否使用有效憑證
- Full/Strict 等 TLS 模式是否正確
- 自訂網域驗證是否仍有效
- CAA 是否阻止憑證簽發
- 搬家後舊平台是否仍攔截流量
常見問題
Q:Let's Encrypt 憑證免費,安全性比較差嗎?
A: 免費指簽發費用,不代表加密較弱。安全性更取決於 TLS 設定、私鑰保護與維運流程。
Q:憑證過期會影響 SEO 嗎?
A: 過期會造成使用者與爬蟲無法正常存取,先影響可用性與信任,也會連帶影響搜尋表現。
Q:已經有 HSTS,憑證過期可以先略過嗎?
A: 更不行。HSTS 會讓瀏覽器拒絕略過無效憑證警告,因此續期與告警要先可靠運作。
下一步
今天先跑一次到期查詢與 certbot renew --dry-run,再確認外部監控有通知到真正負責的人。完整網站狀態可用免費網站健檢檢查。
參考來源
想知道你的網站到底漏在哪?
速度、SEO、安全、收信、AI 能見度 —— 3 分鐘免費健檢,把看不見的問題變成看得見的數字。