Vond de oorzaak van uitgedroogde problemen met andere ACME-servers dan LetsEncrypt

Sebastiaan Krause bepaald bron van vreemde incompatibiliteit met de service Bypass script uitgedroogd, gebruikt om de ontvangst van TLS-certificaten te automatiseren met behulp van het ACME-protocol. Zowel de referentieclient als uacme werken met Bypass, maar niet uitgedroogd (preciezer gezegd, het werkte ook met enkele tijdelijke oplossingen, maar uitsluitend in dns-1-modus).

De reden bleek triviaal: in plaats van het antwoord echt in JSON-formaat te parseren, gebruikte de auteur van dehydrated de opmaakfunctie van een specifieke JSON-uitvoer van de Let's Encrypt-service en parseerde deze met behulp van een reguliere expressie. Maar Bypass retourneert niet prachtig geformatteerd, maar verkleinde JSON en de gebruikte reguliere expressie werkte niet. Deze aanpak sluit problemen met LetsEncrypt niet uit als deze dienst in de toekomst zonder waarschuwing het uitgifteformaat wijzigt, terwijl hij volledig binnen het raamwerk van het officiële protocol blijft.

Bij de bespreking van het probleem werd voorgesteld om een ​​externe JSON-parser te gebruiken, zoals json_pp of jq (voeg 'jq -r ".authorizations | .[]"' toe aan de pipe voor correcte parsering).
Het nadeel van deze aanpak is de verwatering van het idee van het gebruik van minimale en gemakkelijk verifieerbare middelen, evenals problemen met foutafhandeling.

Auteur van het gedehydrateerde project (het project is onlangs uitverkocht Apilayer GmbH) overeengekomen, dat het parseren van JSON een groot probleem is, maar hij denkt niet dat het toevoegen van externe parsers een goed idee is, aangezien een van de belangrijkste voordelen van het script het gebrek aan binding aan externe afhankelijkheden is. Hij heeft het momenteel druk, maar hoopt de komende dagen zijn aandacht te kunnen besteden aan het oplossen van het probleem. De plannen omvatten het herwerken van de JSON-parser of het integreren van een kant-en-klare parser in de shell-taal - JSON.sh.

Bron: opennet.ru

Voeg een reactie