Sebastian Krause kilden til den mærkelige inkompatibilitet med tjenesten scriptet , som anvendes til at automatisere indhentning af TLS-certifikater via ACME-protokollen. Både Bypass og den referenceklient samt uacme fungerer, men dehydrated gør det ikke (mere præcist, det har også fungeret under nogle omveje, men udelukkende i dns-1 tilstand).
Årsagen viste sig at være banal: i stedet for at analysere svaret i JSON-format ordentligt, brugte forfatteren af dehydrated en specifik funktion i formateringen af det pågældende JSON-output fra Let's Encrypt og udførte analysen ved hjælp af regelmæssige udtryk. Men Bypass returnerer ikke pænt formateret, men minificeret JSON, og det anvendte virkede ikke. Den nævnte tilgang udelukker ikke problemer med LetsEncrypt, hvis denne tjeneste uden varsel ændrer outputformatet, mens den forbliver inden for rammerne af den officielle protokol.
Ved drøftelsen af problemet blev det foreslået at anvende en ekstern JSON-parser, såsom eller (tilføj i pipeline ‘jq -r «.authorizations | .[]»‘ for korrekt analyse).
En ulempe ved en sådan tilgang er udvaskningen af ideen om at klare sig med minimale og let verificerbare midler samt problemer med fejlbehandling.
Forfatteren af projektet dehydrated (projektet er for nylig blevet til virksomheden Apilayer GmbH) , at analysen af JSON er et stort problem, men han mener ikke, at det er en god idé at tilføje eksterne parsere, da en af de nøgleværdier ved scriptet er fraværet af afhængighed af eksterne elementer. I øjeblikket er han optaget, men håber at kunne tage sig af problemet i de kommende dage. Han planlægger at revidere JSON-parseren eller integrere en færdig parser på shell-sprog — .
Kilde: opennet.ru
