Открита е причината за проблемите на dehydrated с ACME-сървъри, различни от LetsEncrypt

Себастиан Краузе определи източника на странната несъвместимост със сервиса 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

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster