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

Open
opened 2025-07-11 09:30:27 +02:00 by stb · 0 comments
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
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
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.