Sebastian Krause källan till den konstiga inkompatibiliteten med tjänsten av skriptet , som används för att automatisera hämtning av TLS-certifikat via ACME-protokollet. Bypass fungerar både med referenskunden och uacme, men inte med dehydrated (snarare, det fungerade också med vissa genvägar, men uteslutande i dns-1-läget).
Anledningen visade sig vara banal: istället för att verkligen analysera svaret i JSON-format, använde skaparen av dehydrated en speciell formatteringsfunktion av JSON-utdata från Let's Encrypt-tjänsten och analyserade det med hjälp av reguljära uttryck. Men Bypass returnerar inte vackert formaterad, utan minifierad JSON, och det använda funkade inte. Den angivna metoden utesluter inte uppkomsten av problem även med LetsEncrypt, om denna tjänst i framtiden utan förvarning ändrar formatet på sin utdata, och fortfarande håller sig inom ramen för det officiella protokollet.
Vid diskussionen av problemet föreslogs det att använda en extern JSON-parser, såsom eller (lägg till i pipen ‘jq -r " .authorizations | .[] "‘ för korrekt analys).
Nackdelen med en sådan metod är att idén om att klara sig med minimala och lätt verifierbara medel försvinner, liksom problem med felhantering.
Skaparen av projektet dehydrated (projektet såldes nyligen företaget Apilayer GmbH) , att analysen av JSON är ett stort problem, men han anser inte att det är en bra idé att lägga till externa parsers eftersom en av de viktigaste fördelarna med skriptet är avsaknaden av beroenden. För närvarande är han upptagen men hoppas kunna ägna tid åt att lösa problemet inom de närmaste dagarna. Det finns planer för att omarbeta JSON-parsaren eller integrera en färdig parser i shell-språket — .
Källa: opennet.ru
