Найдена причина проблем dehydrated с ACME-серверами, отличными от LetsEncrypt

Автор Сообщение
news_bot ®

Стаж: 6 лет 3 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
03-Июл-2020 11:30

Sebastian Krause определил источник странной несовместимости с сервисом Bypass скрипта dehydrated, используемого для автоматизации получения TLS-сертификатов по протоколу ACME. С Bypass работают и эталонный клиент, и uacme, но не dehydrated (точнее, он тоже с некоторыми обходными манёврами заработал, но исключительно в режиме dns-1).
Причина оказалась банальна: вместо того чтобы разбирать ответ в формате JSON по настоящему, автор dehydrated использовал особенность форматирования конкретного JSON-вывода от сервиса Let's Encrypt и выполнял разбор при помощи регулярного выражения. Но Bypass возвращает не красиво отформатированный, а минифицированный JSON, и использованное регулярное выражение не сработало. Указанный подход не исключает возникновения проблем и с LetsEncrypt, если данный сервис в будущем без предупреждения поменяет формат выдачи, оставшись при этом вполне в рамках официального протокола.
При обсуждении проблемы было предложено использовать внешний парсер JSON, такой как json_pp или jq (добавить в pipe 'jq -r ".authorizations | .[]"' для корректного разбора).
Недостатком такого подхода является размытие идеи обойтись минимальными и легко верифицируемыми средствами, а также проблемы с обработкой ошибок.
Автор проекта dehydrated (проект недавно был продан компании Apilayer GmbH) согласился, что разбор JSON является большой проблемой, но добавлять внешние парсеры он не считает хорошей идеей, так как одним из ключевых достоинств скрипта является отсутствие привязки к внешним зависимостям. В настоящее время он занят, но надеется в ближайшие несколько дней уделить внимание решению проблемы. В планах отмечена является переработка парсера JSON или интеграция готового парсера на языке shell - JSON.sh.
===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_dehydrated, #_acme, #_shell
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 13-Май 17:51
Часовой пояс: UTC + 5