Atopouse a causa dos problemas deshidratados con servidores ACME distintos de LetsEncrypt

Sebastián Krause identificado fonte de estraña incompatibilidade co servizo ignorar guión deshidratado, usado para automatizar a recepción de certificados TLS mediante o protocolo ACME. Tanto o cliente de referencia como uacme funcionan con Bypass, pero non deshidratados (máis precisamente, tamén funcionou con algunhas solucións, pero exclusivamente en modo dns-1).

O motivo resultou ser trivial: en lugar de analizar a resposta en formato JSON de verdade, o autor de deshidratado utilizou a función de formato dunha saída JSON específica do servizo Let's Encrypt e analizouno mediante unha expresión regular. Pero Bypass non devolve JSON ben formateado, senón minificado e o usado expresión regular non funcionou. Este enfoque non exclúe problemas con LetsEncrypt se este servizo cambia o formato de emisión no futuro sen previo aviso, aínda que permanece completamente no marco do protocolo oficial.

Ao discutir o problema, suxeriuse usar un analizador JSON externo como json_pp ou jq (engade 'jq -r ".authorizations | .[]"' ao tubo para a análise correcta).
A desvantaxe deste enfoque é a dilución da idea de usar medios mínimos e facilmente verificables, así como os problemas coa xestión de erros.

Autor do proxecto deshidratado (o proxecto foi recentemente vendido Apilayer GmbH) acordou, que analizar JSON é un gran problema, pero non considera unha boa idea engadir analizadores externos, xa que unha das principais vantaxes do script é a falta de vinculación a dependencias externas. Actualmente está ocupado, pero espera dedicar a súa atención a solucionar o problema nos próximos días. Os plans inclúen reelaborar o analizador JSON ou integrar un analizador preparado na linguaxe de shell. JSON.sh.

Fonte: opennet.ru

Engadir un comentario