Die Ursache für die Probleme mit dehydrated und ACME-Servern, die nicht LetsEncrypt sind, wurde gefunden.

Sebastian Krause hat die Quelle für die seltsame Inkompatibilität mit dem Dienst identifiziert. Bypass Skript dehydrated, das zur Automatisierung der TLS-Zertifikatsbeschaffung über das ACME-Protokoll verwendet wird. Mit Bypass funktionieren sowohl der Referenz-Client als auch uacme, aber nicht dehydrated (genauer gesagt, es hat auch mit einigen Workarounds funktioniert, jedoch ausschließlich im dns-1-Modus).

Der Grund war banal: Anstatt die Antwort im JSON-Format richtig zu parsen, hat der Autor von dehydrated eine Besonderheit der Formatierung einer bestimmten JSON-Ausgabe des Let’s Encrypt-Dienstes genutzt und das Parsen mit regulären Ausdrücken durchgeführt. Aber Bypass gibt nicht schön formatiertes, sondern minimiertes JSON zurück, und das verwendete reguläre Ausdruck hat nicht funktioniert. Der angegebene Ansatz schließt nicht aus, dass auch bei LetsEncrypt Probleme auftreten, wenn dieser Dienst in Zukunft ohne Vorwarnung das Ausgabeformat ändert, während er weiterhin innerhalb des offiziellen Protokolls bleibt.

Bei der Diskussion des Problems wurde vorgeschlagen, einen externen JSON-Parser zu verwenden, wie z. B. json_pp oder jq (in die Pipe ‘jq -r «.authorizations | .[]»‘ für eine korrekte Analyse hinzufügen).
Ein Nachteil dieses Ansatzes ist die Unschärfe der Idee, mit minimalen und leicht verifizierbaren Mitteln auszukommen, sowie die Probleme bei der Fehlerbehandlung.

Der Autor des Projekts dehydrated (das Projekt wurde kürzlich verkauft an die Firma Apilayer GmbH) stimmte zu, dass die Verarbeitung von JSON ein großes Problem darstellt, aber er hält es nicht für eine gute Idee, externe Parser hinzuzufügen, da eine der Schlüsselstärken 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. Auf seiner To-do-Liste steht die Überarbeitung des JSON-Parsers oder die Integration eines fertigen Parsers in Shell-Sprache — JSON.sh.

Quelle: opennet.ru

Erwerben Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster