S'ha trobat la causa dels problemes deshidratats amb servidors ACME diferents de LetsEncrypt

Sebastian Krause definit font d'estranya incompatibilitat amb el servei derivació guió deshidratat, utilitzat per automatitzar la recepció de certificats TLS mitjançant el protocol ACME. Tant el client de referència com uacme funcionen amb Bypass, però no deshidratats (més precisament, també funcionava amb algunes solucions, però exclusivament en mode dns-1).

El motiu va resultar ser trivial: en lloc d'analitzar la resposta en format JSON de veritat, l'autor de deshidratat va utilitzar la funció de format d'una sortida JSON específica del servei Let's Encrypt i la va analitzar mitjançant una expressió regular. Però Bypass no retorna JSON amb un format bonic, sinó minificat i l'utilitzat Expressió normal no va funcionar. Aquest enfocament no exclou problemes amb LetsEncrypt si aquest servei canvia el format d'emissió en el futur sense previ avís, tot i que es manté completament dins del marc del protocol oficial.

Quan es parla del problema, es va suggerir utilitzar un analitzador JSON extern com ara json_pp o jq (afegiu 'jq -r ".authorizations | .[]"' a la canonada per a una correcta anàlisi).
El desavantatge d'aquest enfocament és la dilució de la idea d'utilitzar mitjans mínims i fàcilment verificables, així com problemes amb la gestió d'errors.

Autor del projecte deshidratat (el projecte va ser recentment venut Apilayer GmbH) convingut, que analitzar JSON és un gran problema, però no considera una bona idea afegir analitzadors externs, ja que un dels avantatges clau de l'script és la manca d'enllaç a dependències externes. Actualment està ocupat, però espera dedicar la seva atenció a resoldre el problema en els propers dies. Els plans inclouen la reelaboració de l'analitzador JSON o la integració d'un analitzador ja fet en el llenguatge de l'intèrpret d'ordres - JSON.sh.

Font: opennet.ru

Afegeix comentari