Skip to content

Nuface Blog

隨意隨手記 Casual Notes

Menu
  • Home
  • About
  • Services
  • Blog
  • Contact
  • Privacy Policy
  • Login
Menu

使用 Docker Certbot 刪除不再使用的 Let’s Encrypt 憑證

Posted on 2025-12-052025-12-05 by Rico

在使用 Docker 版 Certbot 進行 SSL 憑證續約 (certbot renew) 的環境中,常會遇到一個問題:

「有些網域已經不用了,但 Certbot 仍然把它們列在憑證列表裡。」

這不但會讓 renew 過程變得冗長,也可能在 web server 或 mail server 設定上造成混亂。

本篇文章記錄如何在 Docker 環境下,安全地刪除不再使用的 Let’s Encrypt 憑證,包括:

  • 如何查看現有憑證
  • 如何刪除個別憑證 lineage
  • 如何處理 Certbot lock 問題
  • 最後的最佳化建議

📌 環境說明

Certbot 以 Docker 容器方式執行,並使用 named volumes 儲存資料:

docker run --rm \
  -v httpd-etc-letsencrypt:/etc/letsencrypt \
  -v httpd-varlib-letsencrypt:/var/lib/letsencrypt \
  -v httpd-varlog-letsencrypt:/var/log/letsencrypt \
  -v httpd-virtual-htdocs:/var/www/virtual \
  certbot/certbot:v4.1.1 renew

1. 查看現有 Let’s Encrypt 憑證列表

使用以下指令查看目前所有憑證(lineage):

docker run --rm -it \
  -v httpd-etc-letsencrypt:/etc/letsencrypt \
  -v httpd-varlib-letsencrypt:/var/lib/letsencrypt \
  -v httpd-varlog-letsencrypt:/var/log/letsencrypt \
  certbot/certbot:v4.1.1 certificates

在實際執行後,我得到以下輸出(節錄):

Certificate Name: pop3.nuface.tw
  Domains: pop3.nuface.tw
  Expiry Date: 2025-11-24 (EXPIRED)

Certificate Name: imap.nuface.tw
Certificate Name: mailadmin.nuface.tw
Certificate Name: smtp.nuface.tw
Certificate Name: tpm1.nuface.tw
Certificate Name: webmail.nuface.tw
...
Certificate Name: tpm1.demo.com.tw  (VALID)
Certificate Name: wms.demo.com.tw    (VALID)

從列表可見,有多張 nuface.tw 的憑證都已經不再使用,且全部過期。


2. 先排除 Certbot lock 問題(若遇到)

若出現:

Another instance of Certbot is already running.

代表 Vault 內存在舊的 lock file,只需清除即可。

進入 volumes:

docker run --rm -it \
  -v httpd-etc-letsencrypt:/etc/letsencrypt \
  -v httpd-varlib-letsencrypt:/var/lib/letsencrypt \
  alpine:3.20 /bin/sh

刪除 lock:

rm -f /var/lib/letsencrypt/.certbot.lock
rm -f /etc/letsencrypt/.certbot.lock

確認後退出:

exit

3. 刪除不再使用的憑證 lineage

Certbot 的憑證都是「獨立 lineage」,只要不需要,就可以單獨刪除。

例如要刪除完全不用的 pop3.nuface.tw:

docker run --rm -it \
  -v httpd-etc-letsencrypt:/etc/letsencrypt \
  -v httpd-varlib-letsencrypt:/var/lib/letsencrypt \
  -v httpd-varlog-letsencrypt:/var/log/letsencrypt \
  certbot/certbot:v4.1.1 delete \
    --cert-name pop3.nuface.tw

Certbot 會詢問是否確認刪除,輸入 Y 即可。

實際刪除的憑證包括:

  • pop3.nuface.tw
  • imap.nuface.tw
  • smtp.nuface.tw
  • mailadmin.nuface.tw
  • tpm1.nuface.tw
  • webmail.nuface.tw

只要確定該域名的 web server / mail server 設定已經不再使用該憑證,就可以安全刪除。


4. 再次確認憑證列表

刪除後再次執行:

docker run --rm -it \
  -v httpd-etc-letsencrypt:/etc/letsencrypt \
  -v httpd-varlib-letsencrypt:/var/lib/letsencrypt \
  -v httpd-varlog-letsencrypt:/var/log/letsencrypt \
  certbot/certbot:v4.1.1 certificates

此時只會看到仍在使用且有效的憑證,例如:

  • tpm1.demo.com.tw
  • wms.demo.com.tw
  • wmsadmin.demo.com.tw
  • wmsdb.demo.com.tw

這樣一來,後續的 renew 就會更乾淨、更快,也避免不必要的錯誤。


5. 最佳實務建議

✔ 保持憑證命名整潔

每個 domain 建立獨立憑證(不要把多個 subdomain 塞在同一張 SAN 憑證),
未來要停用某服務時才能輕鬆刪除。

✔ Server 設定同步調整

刪除憑證前,請確認:

  • Apache/Nginx 是否引用該憑證
  • Postfix SNI 是否有該域名
  • Dovecot local_name 是否有配置

避免 reload 時出現「找不到憑證檔案」。

✔ 定期清理

每季檢查一次憑證列表,移除不再使用的域名,
讓 Certbot renew 更快、更安全。


✔ 結語

在 Docker 環境中管理 Let’s Encrypt SSL 憑證非常彈性,但隨著時間推移,
許多網域、服務會退役,清理掉不再使用的憑證是很重要的維運工作。

本篇文章完整示範:

  • 如何列出憑證
  • 如何移除不必要的憑證 lineage
  • 如何處理 Certbot lock 問題
  • 如何保持憑證架構乾淨

清理完成後,Certbot 的續約流程也會變得更精簡、穩定。

Recent Posts

  • Cleaning Up Unused Let’s Encrypt Certificates in a Docker Certbot Environment
  • 使用 Docker Certbot 刪除不再使用的 Let’s Encrypt 憑證
  • Postfix + Let’s Encrypt + BIND9 + DANE Fully Automated TLSA Update Guide
  • Postfix + Let’s Encrypt + BIND9 + DANE TLSA 指紋自動更新完整教學
  • Deploying DANE in Postfix

Recent Comments

  1. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on High Availability Architecture, Failover, GeoDNS, Monitoring, and Email Abuse Automation (SOAR)
  2. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on MariaDB + PostfixAdmin: The Core of Virtual Domain & Mailbox Management
  3. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on Daily Operations, Monitoring, and Performance Tuning for an Enterprise Mail System
  4. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on Final Chapter: Complete Troubleshooting Guide & Frequently Asked Questions (FAQ)
  5. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on Network Architecture, DNS Configuration, TLS Design, and Postfix/Dovecot SNI Explained

Archives

  • December 2025
  • November 2025
  • October 2025

Categories

  • AI
  • Apache
  • Cybersecurity
  • Database
  • DNS
  • Docker
  • Fail2Ban
  • FileSystem
  • Firewall
  • Linux
  • LLM
  • Mail
  • N8N
  • OpenLdap
  • OPNsense
  • PHP
  • QoS
  • Samba
  • Switch
  • Virtualization
  • VPN
  • WordPress
© 2025 Nuface Blog | Powered by Superbs Personal Blog theme