Намерена е причината за проблемите на 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