From aca10f2250e84102ea0aff32761a10d390ac4f3e Mon Sep 17 00:00:00 2001 From: furyhawk Date: Sun, 12 Apr 2026 00:21:29 +0800 Subject: [PATCH] fix: update certificate collection logic to support multiple resolvers and enhance error message --- scripts/mailserver-sync-traefik-cert.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scripts/mailserver-sync-traefik-cert.sh b/scripts/mailserver-sync-traefik-cert.sh index 5b495f8..9768159 100755 --- a/scripts/mailserver-sync-traefik-cert.sh +++ b/scripts/mailserver-sync-traefik-cert.sh @@ -23,9 +23,13 @@ acme_path, mail_domain, target_dir = sys.argv[1], sys.argv[2], sys.argv[3] with open(acme_path, "r", encoding="utf-8") as f: data = json.load(f) -cert_entries = data.get("letsencrypt", {}).get("Certificates", []) +# Collect certificates from all resolvers in the store +cert_entries = [] +for resolver_data in data.values(): + if isinstance(resolver_data, dict): + cert_entries.extend(resolver_data.get("Certificates") or []) if not cert_entries: - raise SystemExit("No certificates found in acme.json") + raise SystemExit("No certificates found in acme.json (Traefik may not have issued any yet)") selected = None for entry in cert_entries: