Hittade orsaken till uttorkade problem med andra ACME-servrar än LetsEncrypt

Sebastian Krause fast besluten källa till märklig inkompatibilitet med tjänsten Bypass manus dehydratiserad, används för att automatisera mottagandet av TLS-certifikat med ACME-protokollet. Både referensklienten och uacme fungerar med Bypass, men inte uttorkad (mer exakt, det fungerade också med vissa lösningar, men uteslutande i dns-1-läge).

Anledningen visade sig vara trivial: istället för att analysera svaret i JSON-format på riktigt, använde författaren av dehydrated formateringsfunktionen för en specifik JSON-utdata från tjänsten Let's Encrypt och analyserade den med ett reguljärt uttryck. Men Bypass returnerar inte vackert formaterad, utan minifierad JSON och den använda vanligt uttryck fungerade inte. Detta tillvägagångssätt utesluter inte problem med LetsEncrypt om denna tjänst ändrar utgivningsformatet i framtiden utan förvarning, samtidigt som den förblir helt inom ramen för det officiella protokollet.

När man diskuterade problemet föreslogs att man skulle använda en extern JSON-parser som t.ex json_pp eller jq (lägg till 'jq -r ".authorizations | .[]"' till pipen för korrekt analys).
Nackdelen med detta tillvägagångssätt är utspädningen av idén om att använda minimala och lätt verifierbara medel, såväl som problem med felhantering.

Författare till det uttorkade projektet (projektet var nyligen utsåld Apilayer GmbH) gick med på, att tolka JSON är ett stort problem, men han anser inte att det är en bra idé att lägga till externa tolkar, eftersom en av de viktigaste fördelarna med skriptet är bristen på bindning till externa beroenden. Han är för närvarande upptagen, men hoppas kunna ägna sin uppmärksamhet åt att lösa problemet under de närmaste dagarna. Planerna inkluderar omarbetning av JSON-parsern eller integration av en färdig parser i skalspråket - JSON.sh.

Källa: opennet.ru

Lägg en kommentar