Nalezena příčina dehydratovaných problémů s jinými servery ACME než LetsEncrypt

Sebastian Krause definované zdroj podivné nekompatibility se službou Bypass skript dehydratovaný, sloužící k automatizaci příjmu certifikátů TLS pomocí protokolu ACME. Referenční klient i uacme pracují s Bypassem, ale ne dehydratovaně (přesněji to fungovalo i s nějakými workaroundy, ale výhradně v režimu dns-1).

Důvod se ukázal být triviální: místo skutečné analýzy odpovědi ve formátu JSON použil autor dehydrated funkci formátování konkrétního výstupu JSON ze služby Let's Encrypt a analyzoval jej pomocí regulárního výrazu. Ale Bypass nevrací krásně naformátovaný, ale miniifikovaný JSON a použitý regulární výraz nefunguje. Tento přístup nevylučuje problémy s LetsEncrypt, pokud tato služba v budoucnu bez varování změní formát vydávání, přičemž zůstane zcela v rámci oficiálního protokolu.

Při diskuzi o problému bylo navrženo použít externí analyzátor JSON, jako je např json_pp nebo jq (pro správnou analýzu přidejte do kanálu 'jq -r ".authorizations | .[]"').
Nevýhodou tohoto přístupu je rozmělnění myšlenky na použití minimálních a snadno ověřitelných prostředků, stejně jako problémy se zpracováním chyb.

Autorem dehydrovaného projektu (projekt byl nedávno vyprodáno Apilayer GmbH) souhlasil, že parsovat JSON je velký problém, ale přidávání externích parserů nepovažuje za dobrý nápad, protože jednou z klíčových výhod skriptu je absence vazby na externí závislosti. V současné době je zaneprázdněn, ale doufá, že se v nejbližších dnech bude věnovat řešení problému. Plány zahrnují přepracování analyzátoru JSON nebo integraci hotového analyzátoru v jazyce shellu - JSON.sh.

Zdroj: opennet.ru

Přidat komentář