Zistila sa príčina dehydratovaných problémov so servermi ACME inými ako LetsEncrypt

Sebastian Krause identifikované zdroj podivnej nekompatibility so službou bypass skript dehydratovaný, ktorý sa používa na automatizáciu príjmu certifikátov TLS pomocou protokolu ACME. Referenčný klient aj uacme fungujú s Bypassom, ale nie dehydrované (presnejšie to fungovalo aj s nejakými obchádzaniami, ale výlučne v režime dns-1).

Dôvod sa ukázal ako triviálny: namiesto skutočného analyzovania odpovede vo formáte JSON autor dehydrovaného použil funkciu formátovania konkrétneho výstupu JSON zo služby Let's Encrypt a analyzoval ho pomocou regulárneho výrazu. Ale Bypass nevracia krásne formátovaný, ale miniifikovaný JSON a použitý regulárny výraz nepracovalo. Tento prístup nevylučuje problémy s LetsEncrypt, ak táto služba v budúcnosti bez varovania zmení formát vydania, pričom zostane úplne v rámci oficiálneho protokolu.

Pri diskusii o probléme bolo navrhnuté použiť externý JSON parser ako napr json_pp alebo jq (pre správnu analýzu pridajte 'jq -r ".authorizations | .[]"' do potrubia).
Nevýhodou tohto prístupu je oslabenie myšlienky používania minimálnych a ľahko overiteľných prostriedkov, ako aj problémy so spracovaním chýb.

Autor dehydrovaného projektu (projekt bol nedávno vypredané Apilayer GmbH) súhlasil, že analyzovať JSON je veľký problém, ale pridávanie externých analyzátorov nepovažuje za dobrý nápad, keďže jednou z kľúčových výhod skriptu je absencia väzby na externé závislosti. Momentálne je zaneprázdnený, ale dúfa, že sa v najbližších dňoch bude venovať riešeniu problému. Plány zahŕňajú prepracovanie syntaktického analyzátora JSON alebo integráciu hotového analyzátora v jazyku shell - JSON.sh.

Zdroj: opennet.ru

Pridať komentár