Encontrou a causa dos problemas de desidratação com servidores ACME diferentes do LetsEncrypt

Sebastião Krause definiram fonte de estranha incompatibilidade com o serviço Ignorar roteiro desidratado, usado para automatizar o recebimento de certificados TLS usando o protocolo ACME. Tanto o cliente de referência quanto o uacme funcionam com Bypass, mas não desidratados (mais precisamente, também funcionaram com algumas soluções alternativas, mas exclusivamente no modo dns-1).

O motivo acabou sendo trivial: em vez de analisar a resposta no formato JSON de verdade, o autor de desidratado usou o recurso de formatação de uma saída JSON específica do serviço Let's Encrypt e a analisou usando uma expressão regular. Mas Bypass retorna não lindamente formatado, mas JSON reduzido, e o usado expressão regular não funcionou. Esta abordagem não exclui problemas com o LetsEncrypt se este serviço alterar o formato de emissão no futuro sem aviso prévio, permanecendo completamente dentro da estrutura do protocolo oficial.

Ao discutir o problema, foi sugerido usar um analisador JSON externo, como json_pp ou jq (adicione 'jq -r ".authorizations | .[]"' ao canal para análise correta).
A desvantagem desta abordagem é a diluição da ideia de utilizar meios mínimos e facilmente verificáveis, bem como problemas com tratamento de erros.

Autor do projeto desidratado (o projeto foi recentemente esgotado Apilayer GmbH) concordou, que analisar JSON é um grande problema, mas ele não considera uma boa ideia adicionar analisadores externos, já que uma das principais vantagens do script é a falta de ligação a dependências externas. Ele está ocupado no momento, mas espera dedicar sua atenção à solução do problema nos próximos dias. Os planos incluem retrabalhar o analisador JSON ou integrar um analisador pronto na linguagem shell - JSON.sh.

Fonte: opennet.ru

Adicionar um comentário