تم العثور على سبب المشاكل المجففة مع خوادم ACME بخلاف LetsEncrypt

سيباستيان كراوس مُعرف مصدر عدم التوافق الغريب مع الخدمة تجنب النصي مجففة، يُستخدم لأتمتة استلام شهادات TLS باستخدام بروتوكول ACME. يعمل كل من العميل المرجعي وuacme مع Bypass، ولكن ليس مجففًا (بتعبير أدق، يعمل أيضًا مع بعض الحلول البديلة، ولكن حصريًا في وضع dns-1).

تبين أن السبب تافه: بدلاً من تحليل الاستجابة بتنسيق JSON بشكل حقيقي، استخدم مؤلف المجففة ميزة التنسيق لمخرج JSON محدد من خدمة Let's Encrypt وقام بتحليلها باستخدام تعبير عادي. لكن Bypass لا يُرجع تنسيقًا جميلًا، بل يُرجع JSON المصغر والمستخدم تعبير عادي لم تعمل. لا يستبعد هذا النهج حدوث مشكلات مع LetsEncrypt إذا قامت هذه الخدمة بتغيير تنسيق الإصدار في المستقبل دون سابق إنذار، مع البقاء بالكامل في إطار البروتوكول الرسمي.

عند مناقشة المشكلة، تم اقتراح استخدام محلل JSON خارجي مثل json_pp أو jq (أضف 'jq -r ".authorizations | .[]"' إلى الأنبوب للتحليل الصحيح).
عيب هذا النهج هو تخفيف فكرة استخدام الحد الأدنى من الوسائل التي يمكن التحقق منها بسهولة، فضلا عن مشاكل معالجة الأخطاء.

مؤلف مشروع المجففة (كان المشروع مؤخرًا بيعت كلها أبيلاير جي إم بي إتش) متفق عليه، أن تحليل JSON يمثل مشكلة كبيرة، لكنه لا يعتبر إضافة موزعين خارجيين فكرة جيدة، نظرًا لأن إحدى المزايا الرئيسية للبرنامج النصي هي عدم الارتباط بالتبعيات الخارجية. وهو مشغول حاليًا، لكنه يأمل أن يكرس اهتمامه لحل المشكلة في الأيام القليلة المقبلة. تتضمن الخطط إعادة صياغة محلل JSON أو دمج محلل جاهز في لغة الصدفة - JSON.sh.

المصدر: opennet.ru

إضافة تعليق