Trouvé la cause des problèmes de déshydratation avec les serveurs ACME autres que LetsEncrypt

Sébastien Krause défini source d'étrange incompatibilité avec le service Bypass scénario déshydraté, utilisé pour automatiser la réception des certificats TLS à l'aide du protocole ACME. Le client de référence et l'uacme fonctionnent avec Bypass, mais pas avec déshydratation (plus précisément, il a également fonctionné avec certaines solutions de contournement, mais exclusivement en mode DNS-1).

La raison s'est avérée triviale : au lieu d'analyser réellement la réponse au format JSON, l'auteur de dehydrated a utilisé la fonctionnalité de formatage d'une sortie JSON spécifique du service Let's Encrypt et l'a analysée à l'aide d'une expression régulière. Mais Bypass renvoie un JSON non joliment formaté, mais minifié, et le expression régulière n'a pas fonctionné. Cette approche n'exclut pas des problèmes avec LetsEncrypt si ce service change dans le futur le format d'émission sans avertissement, tout en restant totalement dans le cadre du protocole officiel.

Lors de la discussion du problème, il a été suggéré d'utiliser un analyseur JSON externe tel que json_pp ou jq (ajoutez 'jq -r ".authorizations | .[]"' au tube pour une analyse correcte).
L'inconvénient de cette approche est la dilution de l'idée d'utiliser des moyens minimaux et facilement vérifiables, ainsi que des problèmes de gestion des erreurs.

Auteur du projet déshydraté (le projet a été récemment épuisé (Apilayer GmbH) convenu, que l'analyse de JSON est un gros problème, mais il ne considère pas l'ajout d'analyseurs externes comme une bonne idée, car l'un des principaux avantages du script est l'absence de liaison avec des dépendances externes. Il est actuellement occupé, mais espère consacrer son attention à la résolution du problème dans les prochains jours. Les plans incluent la refonte de l'analyseur JSON ou l'intégration d'un analyseur prêt à l'emploi dans le langage shell - JSON.sh.

Source: opennet.ru

Ajouter un commentaire