हम अपने एक ग्राहक को प्रमाणित करने के लिए क्लाइंट साइड सर्टिफिकेट का उपयोग कर रहे हैं।
हमारा सेटअप यह है: हम एक 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
इसे हल करना आसान था, लेकिन मुझे समझ नहीं आता कि क्यों। तो मेरे सवाल वास्तव में है:
- कहां से आता है मूल्य
$ssl_client_s_dn? क्या यह नगनेक्स द्वारा निर्धारित किया गया है? ग्राहक? - क्या इस मूल्य के प्रारूप का कोई प्रलेखन / विनिर्देश है और क्या इसका कोई नाम है?