LetsEncrypt के अलावा ACME सर्वर के साथ निर्जलित समस्याओं का कारण मिला

सेबस्टियन क्रॉस परिभाषित सेवा के साथ अजीब असंगति का स्रोत उपमार्ग लिखी हुई कहानी निर्जलित, ACME प्रोटोकॉल का उपयोग करके TLS प्रमाणपत्रों की प्राप्ति को स्वचालित करने के लिए उपयोग किया जाता है। रेफरेंस क्लाइंट और यूएसीएमई दोनों बायपास के साथ काम करते हैं, लेकिन निर्जलित नहीं (अधिक सटीक रूप से, यह कुछ वर्कअराउंड के साथ भी काम करता है, लेकिन विशेष रूप से डीएनएस-1 मोड में)।

कारण तुच्छ निकला: JSON प्रारूप में प्रतिक्रिया को वास्तविक रूप से पार्स करने के बजाय, डिहाइड्रेटेड के लेखक ने लेट्स एनक्रिप्ट सेवा से एक विशिष्ट JSON आउटपुट की फ़ॉर्मेटिंग सुविधा का उपयोग किया और इसे एक नियमित अभिव्यक्ति का उपयोग करके पार्स किया। लेकिन बायपास रिटर्न खूबसूरती से स्वरूपित नहीं है, बल्कि JSON को छोटा करता है, और उपयोग किया जाता है नियमित अभिव्यक्ति काम नहीं किया। यह दृष्टिकोण LetsEncrypt के साथ समस्याओं को बाहर नहीं करता है यदि यह सेवा भविष्य में चेतावनी के बिना जारी करने वाले प्रारूप को बदल देती है, जबकि पूरी तरह से आधिकारिक प्रोटोकॉल के ढांचे के भीतर रहती है।

समस्या पर चर्चा करते समय, बाहरी JSON पार्सर जैसे का उपयोग करने का सुझाव दिया गया था json_pp या jq (सही पार्सिंग के लिए पाइप में 'jq -r ".authorizations | .[]"' जोड़ें)।
इस दृष्टिकोण का नुकसान न्यूनतम और आसानी से सत्यापन योग्य साधनों का उपयोग करने के विचार का कमजोर होना है, साथ ही त्रुटि प्रबंधन में समस्याएं भी हैं।

निर्जलित परियोजना के लेखक (परियोजना हाल ही में थी बेचा गया एपिलेयर जीएमबीएच) मैं सहमत, कि JSON को पार्स करना एक बड़ी समस्या है, लेकिन वह बाहरी पार्सर्स को जोड़ने को एक अच्छा विचार नहीं मानता है, क्योंकि स्क्रिप्ट के प्रमुख लाभों में से एक बाहरी निर्भरता के लिए बाइंडिंग की कमी है। वह फिलहाल व्यस्त हैं, लेकिन उन्हें उम्मीद है कि अगले कुछ दिनों में वह अपना ध्यान समस्या के समाधान पर लगाएंगे। योजनाओं में JSON पार्सर को फिर से काम करना या शेल भाषा में तैयार पार्सर को एकीकृत करना शामिल है - JSON.sh.

स्रोत: opennet.ru

एक टिप्पणी जोड़ें