Sebastian Krause la source d'une Ă©trange incompatibilitĂ© avec le service du script , utilisĂ© pour automatiser l'obtention des certificats TLS via le protocole ACME. Avec Bypass, le client de rĂ©fĂ©rence et uacme fonctionnent, mais pas dehydrated (en fait, il a Ă©galement fonctionnĂ© avec quelques manĆuvres de contournement, mais uniquement en mode dns-1).
La raison sâest avĂ©rĂ©e ĂȘtre banale : au lieu d'analyser la rĂ©ponse au format JSON comme il se doit, lâauteur de dehydrated a utilisĂ© une particularitĂ© du format spĂ©cifiquement pour la sortie JSON du service Letâs Encrypt et a exĂ©cutĂ© lâanalyse Ă l'aide d'une expression rĂ©guliĂšre. Mais Bypass renvoie un JSON non joliment formatĂ©, mais minifiĂ©, et l'expression nâa pas fonctionnĂ©. L'approche indiquĂ©e ne prĂ©vient pas les problĂšmes avec LetsEncrypt si ce service change son format de sortie Ă l'avenir sans prĂ©avis, tout en restant dans le cadre du protocole officiel.
Lors de la discussion du problĂšme, il a Ă©tĂ© proposĂ© d'utiliser un parser JSON externe, tel que ou (ajouter dans le pipe âjq -r «.authorizations | .[]»â pour une analyse correcte).
L'inconvénient de cette approche est d'effacer l'idée de se contenter d'outils minimaux et facilement vérifiables, ainsi que des problÚmes de gestion des erreurs.
L'auteur du projet dehydrated (le projet a rĂ©cemment Ă©tĂ© Ă la sociĂ©tĂ© Apilayer GmbH) , que l'analyse JSON est un grand problĂšme, mais qu'ajouter des parsers externes n'est pas une bonne idĂ©e, car un des principaux atouts du script est l'absence de dĂ©pendances externes. Il est actuellement occupĂ©, mais espĂšre consacrer du temps Ă la rĂ©solution du problĂšme dans les prochains jours. Dans ses plans, il a notĂ© une refonte du parser JSON ou l'intĂ©gration d'un parser prĂȘt Ă l'emploi en langage shell â .
Source : opennet.ru
