Trovis la kaŭzon de senakvigitaj problemoj kun ACME-serviloj krom LetsEncrypt

Sebastian Krause determinita fonto de stranga nekongrueco kun la servo Antaŭvojo skripto senakvigita, uzata por aŭtomatigi la ricevon de TLS-atestiloj uzante la ACME-protokolon. Kaj la referenca kliento kaj uacme funkcias kun Bypass, sed ne senakvigita (pli precize, ĝi ankaŭ funkciis kun iuj solvoj, sed ekskluzive en dns-1-reĝimo).

La kialo montriĝis bagatela: anstataŭ analizi la respondon en JSON-formato reale, la aŭtoro de dehydrated uzis la formatan funkcion de specifa JSON-produktaĵo de la servo Let's Encrypt kaj analizis ĝin per regula esprimo. Sed Bypass revenas ne bele formatitan, sed minigitan JSON, kaj la uzatan regula esprimo ne funkciis. Ĉi tiu aliro ne ekskludas problemojn kun LetsEncrypt se ĉi tiu servo ŝanĝas la eldonan formaton estonte sen averto, dum ĝi restas tute kadre de la oficiala protokolo.

Dum diskutado de la problemo, oni sugestis uzi eksteran JSON-analizilon kiel ekzemple json_ppjq (aldonu 'jq -r ".authorizations | .[]"' al la tubo por ĝusta analizado).
La malavantaĝo de ĉi tiu aliro estas la diluo de la ideo uzi minimumajn kaj facile kontroleblajn rimedojn, kaj ankaŭ problemojn pri erartraktado.

Aŭtoro de la senhidratigita projekto (la projekto estis lastatempe elvendita Apilayer GmbH) konsentis, ke analizado de JSON estas granda problemo, sed li ne konsideras aldoni eksterajn analizilojn bona ideo, ĉar unu el la ĉefaj avantaĝoj de la skripto estas la manko de ligado al eksteraj dependecoj. Li estas nuntempe okupata, sed esperas dediĉi sian atenton al solvi la problemon en la venontaj kelkaj tagoj. La planoj inkluzivas reverki la JSON-analizilon aŭ integri pretan analizanton en la ŝellingvo - JSON.sh.

fonto: opennet.ru

Aldoni komenton