Har fundet årsagen til dehydrerede problemer med andre ACME-servere end LetsEncrypt

Sebastian Krause defineret kilde til mærkelig uforenelighed med tjenesten bypass manuskript dehydreret, bruges til at automatisere modtagelse af TLS-certifikater ved hjælp af ACME-protokollen. Både referenceklienten og uacme arbejder med Bypass, men ikke dehydreret (mere præcist fungerede det også med nogle løsninger, men udelukkende i dns-1-tilstand).

Årsagen viste sig at være triviel: i stedet for at parse svaret i JSON-format for alvor, brugte forfatteren af ​​dehydrated formateringsfunktionen for et specifikt JSON-output fra Let's Encrypt-tjenesten og analyserede det ved hjælp af et regulært udtryk. Men Bypass returnerer ikke smukt formateret, men minificeret JSON og den brugte almindelig udtryk virkede ikke. Denne tilgang udelukker ikke problemer med LetsEncrypt, hvis denne tjeneste ændrer udstedelsesformatet i fremtiden uden varsel, mens den forbliver fuldstændig inden for rammerne af den officielle protokol.

Når man diskuterede problemet, blev det foreslået at bruge en ekstern JSON-parser som f.eks json_pp eller jq (tilføj 'jq -r ".autorisationer | .[]"' til røret for korrekt parsing).
Ulempen ved denne tilgang er fortyndingen af ​​ideen om at bruge minimale og let verificerbare midler samt problemer med fejlhåndtering.

Forfatter af det dehydrerede projekt (projektet var for nylig udsolgt Apilayer GmbH) var enige, at parsing af JSON er et stort problem, men han mener ikke, at tilføjelse af eksterne parsere er en god idé, da en af ​​de vigtigste fordele ved scriptet er manglen på binding til eksterne afhængigheder. Han har i øjeblikket travlt, men håber at kunne bruge sin opmærksomhed på at løse problemet i løbet af de næste par dage. Planerne omfatter omarbejdelse af JSON-parseren eller integration af en færdigparser i shell-sproget - JSON.sh.

Kilde: opennet.ru

Tilføj en kommentar