Skip to main content

Certbot DNS-01 authenticator plugin for the Galaxyweb DNS Manager

Project description

certbot-dns-galaxyweb

Certbot DNS-01 authenticator plugin für den Galaxyweb DNS Manager.
Setzt und entfernt _acme-challenge-TXT-Records automatisch über die REST-API – kein Shell-Hook, keine manuellen curl-Aufrufe.

Voraussetzungen

Komponente Version
Python ≥ 3.8
certbot ≥ 2.0

Installation

# Im selben Python-Environment wie certbot:
pip install certbot-dns-galaxyweb

Certbot erkennt das Plugin automatisch über den Entry-Point –
kein zusätzliches --configurator-Flag nötig.


API-Token erstellen

Empfohlen – Wizard:
Portal → /api-keysLet's Encrypt Wizard → Scope wird automatisch auf acme_only eingeschränkt, Zone-Lockdown wird gesetzt.

Manuell (mehrere Zonen mit einem Token):
Portal → /api-keys → Neuer API-Key → Scope ACME_ONLY, Rate-Limit 10/min, IP-Allowlist auf den Certbot-Host einschränken.


Credentials-Datei

Kopiere die Beispiel-Datei und trage deine Werte ein:

cp galaxyweb.ini.example /etc/letsencrypt/galaxyweb.ini
chmod 0600 /etc/letsencrypt/galaxyweb.ini   # nur root darf lesen

Inhalt:

# /etc/letsencrypt/galaxyweb.ini
certbot_dns_galaxyweb_api_url   = https://dns.example.ch
certbot_dns_galaxyweb_api_token = gw_xxxxxxxxxxxx_…

Zertifikat ausstellen

certbot certonly \
  --authenticator dns-galaxyweb \
  --dns-galaxyweb-credentials /etc/letsencrypt/galaxyweb.ini \
  --dns-galaxyweb-propagation-seconds 30 \
  -d example.ch \
  -d '*.example.ch'
Flag Bedeutung
--authenticator dns-galaxyweb Aktiviert dieses Plugin
--dns-galaxyweb-credentials Pfad zur INI-Datei
--dns-galaxyweb-propagation-seconds Wartezeit nach dem Setzen des TXT-Records (Default: 30 s)

Wildcard + Apex gleichzeitig

certbot certonly \
  --authenticator dns-galaxyweb \
  --dns-galaxyweb-credentials /etc/letsencrypt/galaxyweb.ini \
  -d '*.example.ch' -d example.ch

Beide Domains verwenden denselben Record-Namen _acme-challenge.example.ch. Das Plugin ruft für jede Domain separat set_challenge auf – der Manager überschreibt den Record mit dem jeweils aktuellen Token, was dem ACME-Protokoll entspricht (nur der letzte Challenge-Token zählt).


Automatisches Renewal

certbot renew läuft idempotent – das Plugin wird automatisch erneut aufgerufen:

# /etc/cron.d/certbot  (Debian/Ubuntu liefert das mit)
0 */12 * * *  root  certbot renew --quiet --post-hook 'systemctl reload nginx'

Kein weiterer Konfigurationsaufwand.


Troubleshooting

Symptom Ursache Lösung
HTTP 401 Token falsch oder abgelaufen Portal → /api-keys → Status prüfen / regenerieren
HTTP 403 (scope) Token hat read_only statt acme_only Scope im Portal hochstufen
HTTP 403 (IP) Quell-IP nicht in der Allowlist IP in der Key-Konfiguration ergänzen
HTTP 403 (read-only zone) Zone ist Upstream-Sync oder Slave Master direkt verwenden
HTTP 429 Rate-Limit überschritten Rate-Limit im Portal anheben
CA meldet "no TXT record" DNS-Propagation noch nicht abgeschlossen --dns-galaxyweb-propagation-seconds auf 60 oder 120 erhöhen
Renewal schlägt fehl, manuell klappt Env-Variablen im Cron-Kontext fehlen Credentials stets aus INI-Datei lesen, nie als Env-Variable

Entwicklung & Tests

pip install -e ".[dev]"
pytest tests/

Lizenz

Apache 2.0 – siehe LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

certbot_dns_galaxyweb-1.0.0.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

certbot_dns_galaxyweb-1.0.0-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file certbot_dns_galaxyweb-1.0.0.tar.gz.

File metadata

  • Download URL: certbot_dns_galaxyweb-1.0.0.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for certbot_dns_galaxyweb-1.0.0.tar.gz
Algorithm Hash digest
SHA256 6bb563b3d0bf894fec6b53774d3de23f14f952233b26e78f678a9af1e785fea7
MD5 946e4d4dbc91183cc06ba04983b0b944
BLAKE2b-256 a8dac9dfdf22571f84ecb2133e7bfdcb68488faf84d3adc85ad042fceaaadd00

See more details on using hashes here.

File details

Details for the file certbot_dns_galaxyweb-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for certbot_dns_galaxyweb-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 224cfa466c240fb36e9a2d6ebff60dc74c3c1061c8fbc55c9e7cc6a1ee1dbfa7
MD5 49cd1ce926ca14f990e25d45424b71e7
BLAKE2b-256 894a38fd111b9c0b0c55cb09e7f6d161beea960755c295e357659baf1225474d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page