Let's-Encrypt-Certs via acme-dns #30

Closed
opened 2025-07-11 09:30:27 +02:00 by stb · 1 comment
Owner

Wir haben uns beim letzten Treffen entschieden, die Zertifikate in Zukunft üer das DNS-01 Challenge-Protokoll zu besorgen. Dazu wollen wir acme-dns verwenden.

Prozess

Um für einen Domain-Namen Zertifikate mit Hilfe von acme-dns ausgestellt zu bekommen (z. B. mit cerbtbot, acme.sh oder LEGO), muss folgendes gemacht werden:

  1. In acme-dns muss ein neuer Client registriert werden (HTTP POST). Man bekommt einen Challenge-Domainnamen und einen Token, mit dem die Challenge für diesen Domainnamen aktualisiert werden kann.
  2. Für den eigentlichen Domainnamen trägt man einen CNAME ein, der auf den Challenge-Domainnamen zeigt.
  3. Im Client konfiguriert man DNS-01 mit acme-dns als DNS-Provider.
  4. Ein cronjob o.ä. zieht regelmäßig ein neues Zertifikat.

Technisches Setup

acme-dns ist sowohl ein DNS- als auch ein HTTP-Server.

Wir können acme-dns auf einer privaten Adresse betreiben, wir müssen nur die Challenge-Zone dorthin weiterleiten (von unserem normalen authoritativen DNS-Server), und HTTP-Requests vom Reverse-Proxy weiterleiten.

acme-dns hat keine Authentifzierung, d.h. jeder mit Zugriff auf den Registrierungs-Endpunkt kann neue Challenge-Domains anfordern. Das möchten wir nicht, deshalb schalten wir oauth2-proxy dazwischen. Ein kleine, statische Webanwendung kann genutzt werden, um eine neue Challenge-Domain anzufordern.

Wir haben uns beim letzten Treffen entschieden, die Zertifikate in Zukunft üer das DNS-01 Challenge-Protokoll zu besorgen. Dazu wollen wir [acme-dns](https://github.com/joohoi/acme-dns) verwenden. ## Prozess Um für einen Domain-Namen Zertifikate mit Hilfe von acme-dns ausgestellt zu bekommen (z. B. mit cerbtbot, acme.sh oder LEGO), muss folgendes gemacht werden: 1. In acme-dns muss ein neuer Client registriert werden (HTTP POST). Man bekommt einen Challenge-Domainnamen und einen Token, mit dem die Challenge für diesen Domainnamen aktualisiert werden kann. 2. Für den eigentlichen Domainnamen trägt man einen CNAME ein, der auf den Challenge-Domainnamen zeigt. 3. Im Client konfiguriert man DNS-01 mit acme-dns als DNS-Provider. 4. Ein cronjob o.ä. zieht regelmäßig ein neues Zertifikat. ## Technisches Setup acme-dns ist sowohl ein DNS- als auch ein HTTP-Server. Wir können acme-dns auf einer privaten Adresse betreiben, wir müssen nur die Challenge-Zone dorthin weiterleiten (von unserem normalen authoritativen DNS-Server), und HTTP-Requests vom Reverse-Proxy weiterleiten. acme-dns hat keine Authentifzierung, d.h. jeder mit Zugriff auf den Registrierungs-Endpunkt kann neue Challenge-Domains anfordern. Das möchten wir nicht, deshalb schalten wir [oauth2-proxy](https://github.com/oauth2-proxy/oauth2-proxy) dazwischen. Ein kleine, statische Webanwendung kann genutzt werden, um eine neue Challenge-Domain anzufordern.
stb self-assigned this 2025-07-11 09:30:32 +02:00
Owner

Wir haben nun sowohl ein acme-dns laufen (0f3cd2c70a) als auch Support für acme-dns in der certbot Rolle (8bf6dfbefb) mit den ersten Hosts, die sich damit Zertifikate holen (73ed238a28, 6bc872f1c0).

Wir haben nun sowohl ein acme-dns laufen (0f3cd2c70ab2a937327280adec5194402247aa2b) als auch Support für acme-dns in der `certbot` Rolle (8bf6dfbefb9f88a89f18a48608921e576b9dabf3) mit den ersten Hosts, die sich damit Zertifikate holen (73ed238a281d3be12fc4b18dbc1b9e7260710db1, 6bc872f1c0af393f6cb2a8d281f68244887b3a17).
june closed this issue 2026-03-31 18:02:32 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
CCCHH/ansible-infra#30
No description provided.