Die Ursache für dehydrierte Probleme mit anderen ACME-Servern als LetsEncrypt wurde gefunden

Sebastian Krause bestimmt Ursache einer seltsamen Inkompatibilität mit dem Dienst Umgehen Skript dehydriert, wird verwendet, um den Empfang von TLS-Zertifikaten mithilfe des ACME-Protokolls zu automatisieren. Sowohl der Referenzclient als auch UACME funktionieren mit Bypass, aber nicht dehydriert (genauer gesagt, es funktionierte auch mit einigen Workarounds, aber ausschließlich im DNS-1-Modus).

Der Grund erwies sich als trivial: Anstatt die Antwort tatsächlich im JSON-Format zu analysieren, nutzte der Autor von dehydrated die Formatierungsfunktion einer bestimmten JSON-Ausgabe des Let’s Encrypt-Dienstes und analysierte sie mithilfe eines regulären Ausdrucks. Aber Bypass gibt nicht schön formatiertes, sondern minimiertes JSON zurück und das verwendete regulären Ausdruck funktioniert nicht. Dieser Ansatz schließt Probleme mit LetsEncrypt nicht aus, wenn dieser Dienst in Zukunft das Ausgabeformat ohne Vorwarnung ändert und dabei vollständig im Rahmen des offiziellen Protokolls bleibt.

Bei der Diskussion des Problems wurde vorgeschlagen, einen externen JSON-Parser zu verwenden, z json_pp oder jq (Für eine korrekte Analyse zur Pipe „jq -r „.authorizations | .[]“‘ hinzufügen).
Der Nachteil dieses Ansatzes ist die Verwässerung der Idee, minimale und leicht überprüfbare Mittel zu verwenden, sowie Probleme bei der Fehlerbehandlung.

Autor des dehydrierten Projekts (das Projekt wurde vor kurzem erstellt verkauft Apilayer GmbH) einverstanden, dass das Parsen von JSON ein großes Problem darstellt, er hält das Hinzufügen externer Parser jedoch nicht für eine gute Idee, da einer der Hauptvorteile des Skripts die fehlende Bindung an externe Abhängigkeiten ist. Er ist derzeit beschäftigt, hofft aber, seine Aufmerksamkeit in den nächsten Tagen der Lösung des Problems widmen zu können. Geplant ist unter anderem eine Überarbeitung des JSON-Parsers oder die Integration eines fertigen Parsers in die Shell-Sprache – JSON.sh.

Source: opennet.ru

Kommentar hinzufügen