LetsEncrypt کے علاوہ ACME سرورز کے ساتھ پانی کی کمی کی وجہ کا پتہ چلا

سیبسٹین کراؤس یہ تعین سروس کے ساتھ عجیب عدم مطابقت کا ذریعہ اغماض سکرپٹ پانی کی کمی، ACME پروٹوکول کا استعمال کرتے ہوئے TLS سرٹیفکیٹس کی وصولی کو خودکار کرنے کے لیے استعمال کیا جاتا ہے۔ حوالہ کلائنٹ اور uacme دونوں ہی بائی پاس کے ساتھ کام کرتے ہیں، لیکن پانی کی کمی نہیں (زیادہ واضح طور پر، اس نے کچھ کام کے ساتھ بھی کام کیا، لیکن خصوصی طور پر dns-1 موڈ میں)۔

وجہ معمولی نکلی: جواب کو حقیقی طور پر JSON فارمیٹ میں پارس کرنے کے بجائے، dehydrated کے مصنف نے Let's Encrypt سروس سے ایک مخصوص JSON آؤٹ پٹ کی فارمیٹنگ کی خصوصیت کا استعمال کیا اور ریگولر ایکسپریشن کا استعمال کرتے ہوئے اسے پارس کیا۔ لیکن بائی پاس خوبصورتی سے فارمیٹ شدہ نہیں بلکہ چھوٹے JSON اور استعمال شدہ کو واپس کرتا ہے۔ باقاعدہ اظہار کام نھیں کیا. یہ نقطہ نظر LetsEncrypt کے ساتھ مسائل کو خارج نہیں کرتا ہے اگر یہ سروس بغیر کسی انتباہ کے مستقبل میں جاری کرنے والے فارمیٹ کو تبدیل کرتی ہے، جبکہ مکمل طور پر آفیشل پروٹوکول کے فریم ورک کے اندر رہتی ہے۔

مسئلہ پر بحث کرتے وقت، یہ تجویز کیا گیا تھا کہ ایک بیرونی JSON پارسر استعمال کریں جیسے json_pp یا jq (صحیح تجزیہ کرنے کے لیے پائپ میں 'jq -r ".authorizations | []"' شامل کریں)۔
اس نقطہ نظر کا نقصان کم سے کم اور آسانی سے قابل تصدیق ذرائع استعمال کرنے کے خیال کو کم کرنا ہے، نیز غلطی سے نمٹنے میں دشواری۔

پانی کی کمی کے منصوبے کے مصنف (یہ منصوبہ حال ہی میں تھا۔ بک گیا Apilayer GmbH) اتفاق کیا, کہ JSON کو پارس کرنا ایک بڑا مسئلہ ہے، لیکن وہ بیرونی تجزیہ کاروں کو شامل کرنے کو اچھا خیال نہیں سمجھتا، کیونکہ اسکرپٹ کے اہم فوائد میں سے ایک بیرونی انحصار کے پابند نہ ہونا ہے۔ وہ فی الحال مصروف ہیں، لیکن امید ہے کہ آئندہ چند دنوں میں اس مسئلے کو حل کرنے کی طرف توجہ دیں گے۔ منصوبوں میں JSON پارسر کو دوبارہ کام کرنا یا شیل لینگویج میں ریڈی میڈ پارسر کو ضم کرنا شامل ہے۔ JSON.sh.

ماخذ: opennet.ru

نیا تبصرہ شامل کریں