Nginx $ ssl_client_i_dn का प्रारूप अचानक क्यों बदल गया?


13

हम अपने एक ग्राहक को प्रमाणित करने के लिए क्लाइंट साइड सर्टिफिकेट का उपयोग कर रहे हैं।

हमारा सेटअप यह है: हम एक Django आवेदन के सामने nginx है। हमारे nginx config में, हमारे पास काम करने के लिए वास्तविक क्लाइंट-साइड-सर्टिफिकेट सत्यापन ( ssl_client_certificate, ssl_verify_clientआदि) और पाने के लिए आवश्यक पैरामीटर हैं

uwsgi_param X-Client-Verify $ssl_client_verify;
uwsgi_param X-Client-DN $ssl_client_s_dn;
uwsgi_param X-SSL-Issuer $ssl_client_i_dn;

जिसका अर्थ है कि हम उन वेरिएबल्स के मूल्यों को अपने Django ऐप में प्राप्त करते हैं। फिर Django ऐप इस जानकारी का उपयोग करता है कि यह पहचानने के लिए कि कौन सा उपयोगकर्ता कनेक्ट कर रहा है और उन्हें अधिकृत करता है।

हम बिना किसी समस्या के कई महीनों से सफलतापूर्वक इसका उपयोग कर रहे हैं जब अचानक हमें प्रमाणपत्रों का उपयोग करने में लोगों को लॉग इन नहीं करने के बारे में रिपोर्टें मिलने लगीं। यह पता चला कि एक स्लैश-से-अलग प्रारूप से प्रारूप $ssl_client_s_dnऔर $ssl_client_i_dnमान बदल गए थे:

 /C=SE/O=Some organziation/CN=Some CA

अल्पविराम से अलग किए गए प्रारूप में:

CN=Some CA,O=Some organization,C=SE

इसे हल करना आसान था, लेकिन मुझे समझ नहीं आता कि क्यों। तो मेरे सवाल वास्तव में है:

  1. कहां से आता है मूल्य $ssl_client_s_dn? क्या यह नगनेक्स द्वारा निर्धारित किया गया है? ग्राहक?
  2. क्या इस मूल्य के प्रारूप का कोई प्रलेखन / विनिर्देश है और क्या इसका कोई नाम है?

जवाबों:


18

वे बदल गए क्योंकि नगीनक्स ने उन्हें 1.11.6 रिलीज में बदल दिया। जैसा कि चैंज में दिखाया गया है:

    *) Change: format of the $ssl_client_s_dn and $ssl_client_i_dn variables
       has been changed to follow RFC 2253 (RFC 4514); values in the old
       format are available in the $ssl_client_s_dn_legacy and
       $ssl_client_i_dn_legacy variables.

यदि आप इस तरह की चीज़ से बचना चाहते हैं, तो आपको अस्थिर मेनलाइन रिलीज़ के बजाय स्थिर रिलीज़ से चिपके रहना चाहिए। किसी भी तरह से, आपको उत्पादन को नेत्रहीन रूप से उन्नत करने से पहले पहले परीक्षण करना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.