Encontró la causa de los problemas de deshidratación con servidores ACME distintos de LetsEncrypt

Sebastián Krause identificado fuente de extraña incompatibilidad con el servicio Evitar guion deshidratado, utilizado para automatizar la recepción de certificados TLS utilizando el protocolo ACME. Tanto el cliente de referencia como uacme funcionan con Bypass, pero no deshidratados (más precisamente, también funcionó con algunas soluciones, pero exclusivamente en modo dns-1).

La razón resultó ser trivial: en lugar de analizar la respuesta en formato JSON de verdad, el autor de deshidratado utilizó la función de formato de una salida JSON específica del servicio Let's Encrypt y la analizó usando una expresión regular. Pero Bypass devuelve JSON no bellamente formateado, sino minimizado, y el usado expresión regular no funcionó. Este enfoque no excluye problemas con LetsEncrypt si este servicio cambia el formato de emisión en el futuro sin previo aviso, permaneciendo completamente dentro del marco del protocolo oficial.

Al discutir el problema, se sugirió utilizar un analizador JSON externo como json_pp o jq (agregue 'jq -r ".authorizations | .[]"' a la tubería para un análisis correcto).
La desventaja de este enfoque es la dilución de la idea de utilizar medios mínimos y fácilmente verificables, así como los problemas con el manejo de errores.

Autor del proyecto deshidratado (el proyecto fue recientemente vendido Apilayer GmbH) Согласился, que analizar JSON es un gran problema, pero no considera que agregar analizadores externos sea una buena idea, ya que una de las ventajas clave del script es la falta de vinculación a dependencias externas. Actualmente está ocupado, pero espera dedicar su atención a solucionar el problema en los próximos días. Los planes incluyen reelaborar el analizador JSON o integrar un analizador ya preparado en el lenguaje Shell. JSON.sh.

Fuente: opennet.ru

Añadir un comentario