Sebastian Krause die Quelle der seltsamen InkompatibilitĂ€t mit dem Service des Skripts , das zur Automatisierung der TLS-Zertifikatsanfrage ĂŒber das ACME-Protokoll verwendet wird. Bypass funktioniert sowohl mit dem Referenz-Client als auch mit uacme, aber nicht mit dehydrated (genauer gesagt, es hat auch mit einigen Umgehungsmanövern funktioniert, jedoch ausschlieĂlich im dns-1-Modus).
Die Ursache stellte sich als banal heraus: Anstatt die Antwort im JSON-Format richtig zu parsen, nutzte der Autor von dehydrated eine Besonderheit der spezifischen JSON-Ausgabe von Letâs Encrypt und fĂŒhrte das Parsen mittels regulĂ€rer AusdrĂŒcke durch. Aber Bypass gibt kein schön formatiertes, sondern ein minimiertes JSON zurĂŒck, und das verwendete hat nicht funktioniert. Der angegebene Ansatz schlieĂt das Auftreten von Problemen mit LetsEncrypt nicht aus, falls dieser Service in Zukunft ohne Vorwarnung das Ausgabeformat Ă€ndert und dabei weiterhin vollkommen im Rahmen des offiziellen Protokolls bleibt.
Bei der Diskussion des Problems wurde vorgeschlagen, einen externen JSON-Parser zu verwenden, wie zum Beispiel oder (in den Pipe âjq -r â.authorizations | .[]ââ hinzufĂŒgen fĂŒr eine korrekte Analyse).
Ein Nachteil dieses Ansatzes ist die VerwÀsserung der Idee, mit minimalen und leicht verifizierbaren Mitteln auszukommen, sowie Probleme mit der Fehlerbehandlung.
Der Autor des dehydrated-Projekts (das Projekt wurde kĂŒrzlich an Apilayer GmbH) , dass das Parsen von JSON ein groĂes Problem darstellt, aber er hĂ€lt es nicht fĂŒr eine gute Idee, externe Parser hinzuzufĂŒgen, da eines der Hauptmerkmale des Skripts die UnabhĂ€ngigkeit von externen AbhĂ€ngigkeiten ist. Derzeit ist er beschĂ€ftigt, hofft jedoch, in den nĂ€chsten Tagen Zeit fĂŒr die Lösung des Problems zu finden. Geplant ist die Ăberarbeitung des JSON-Parsers oder die Integration eines fertigen Parsers in der Shell â .
Quelle: opennet.ru
