Megtalálta a kiszáradás okát a LetsEncrypt-től eltérő ACME-kiszolgálókkal

Sebastian Krause meghatározott a szolgáltatással való furcsa összeférhetetlenség forrása Bypass forgatókönyv dehidratált, a TLS-tanúsítványok fogadásának automatizálására szolgál az ACME protokoll segítségével. A referenciakliens és az uacme is működik Bypass-szal, de nem dehidratálva (pontosabban bizonyos megkerülő megoldásokkal is működött, de kizárólag dns-1 módban).

Az ok triviálisnak bizonyult: ahelyett, hogy a választ JSON formátumban értelmezte volna valósan, a dehydrated szerzője a Let's Encrypt szolgáltatás egy adott JSON-kimenetének formázási funkcióját használta, és egy reguláris kifejezéssel elemezte. De a Bypass nem szépen formázott, hanem kicsinyített JSON-t ad vissza, és a használtat reguláris kifejezés nem müködik. Ez a megközelítés nem zárja ki a LetsEncrypt problémáit, ha a szolgáltatás a jövőben figyelmeztetés nélkül megváltoztatja a kiadási formátumot, miközben teljes mértékben a hivatalos protokoll keretein belül marad.

A probléma megvitatása során javasolták egy külső JSON-elemző használatát, mint pl json_pp vagy jq (adja hozzá a 'jq -r ".authorizations | .[]"' karakterláncot a megfelelő elemzéshez).
Ennek a megközelítésnek a hátránya a minimális és könnyen ellenőrizhető eszközök használatának gondolatának felhígulása, valamint a hibakezelési problémák.

A dehidratált projekt szerzője (a projekt nemrég volt elkelt Apilayer GmbH) egyetért, hogy a JSON elemzése nagy probléma, de nem tartja jó ötletnek a külső értelmezők hozzáadását, mivel a szkript egyik legfontosabb előnye a külső függőségekhez való kötődés hiánya. Jelenleg elfoglalt, de reméli, hogy a következő napokban a probléma megoldására fordíthatja a figyelmét. A tervek között szerepel a JSON elemző átdolgozása vagy egy kész értelmező integrálása a shell nyelvbe - JSON.sh.

Forrás: opennet.ru

Hozzászólás