[Eisfair] Certs_dehydrated dns-01 challenge mit Cloudflare

Juergen Edner juergen at eisfair.org
Do Nov 5 14:44:08 CET 2020


Hallo Olaf, hallo Christian,

 > ok, das ist bei mir anders. Ich nutze z.Z noch kein wikldcard. Aber
 > eigentlich sollte es kein Unterschied sein.
 > Deshalb hier mal meine Konfig vom E64 (Den du ja jetzt einsetzen 
möchtest)
 >
 > DEHYDRATED_HOOK_CMD_N='6'
 > DEHYDRATED_HOOK_CMD_1_ACTIVE='yes'
 > DEHYDRATED_HOOK_CMD_1_TYPE='deploy_challenge'
 > ...
 >
 > CMD 1 und 4 werden dazu verwendet bestimmt Kommandos vorher auf dem EIS
 > auszuführen. In meinem Fall die Apachekonfig leicht anzupassen und Ports
 > in der Firewall öffnen, damit letsencrypt nicht immer auf die ... fällt.
 > CMD 1 ändert die Konfig, CMD 4 macht es wieder rückgängig

generell gilt es erst einmal zu verstehen wie Let's Encrypt die 
Domainprüfung durchführt. Bei der standardmäßigen Verwendung von
z.B. 'http-01' wird vom eisfair-Serverer eine Verbindung zum
Let's Encrypt Backend-System aufgebaut, ein Challenge-Token
abgerufen, lokal mit eignen Domain-spezifischen Informationen
verwurstet, ein Challenge-String generiert und über den eisfair-
Webserver bereit gestellt wird.
Das Let's Encrypt Backend-System baut dann, über Port 80/tcp eine 
Verbindung zum eisfair-Server auf, ruft den erzeugten Challenge-
String ab und vergleicht ihn mit seiner eigenen Datenbasis. So
diese übereinstimmen, wird ein Zertifikat erzeugt und auf den
eisfair-Server übertragen.

Bei der Variante 'dns-01' wird der erzeugte Challenge-String nicht
über den eisfair-Webserver bereit gestellt, sondern über einen TXT-
Eintrag des DNS-Records der eigenen Domain.
Das Let's Encrypt Backend-System fragt dann den DN-Record  der Domain
ab, liest den TXT-Eintrag aus und vergleicht diesen mit seiner 
Datenbasis, usw.

Daraus resultiert, dass bei Verwendung von 'dns-01' der 
'deploy_challenge'-Hook dafür Sorge tragen muss, dass der eigene
DNS-Eintrag im Internet aktualisiert wird und der TXT-Eintrag mit
dem Challenge-String versehen wird.

Das von Christian angesprochene Skript stellt nun diverse Hooks
zur Verfügung, welche direkt in einem Skript abgefrühstückt werden.
Dies kollidiert natürlich mit der Paketkonfiguration und lässt den
Prozess scheitern. Wie bereits geschrieben, muss man die Funktion
zur Aktualisierung des DNS-Eintrages extrahieren, in ein eigenes
Skript packen und dann aufrufen lassen.

Gruß Jürgen

-- 
Mail: juergen at eisfair.org


Mehr Informationen über die Mailingliste Eisfair