ssl क्लाइंट सर्टिफिकेट सत्यापन nginx में विफल रहता है


11

मैं nginx में ssl क्लाइंट प्रमाणीकरण सेटअप करने का प्रयास कर रहा हूं। मैंने एक स्व-हस्ताक्षरित रूट CA क्रिएट किया। उस का उपयोग करते हुए, मैंने एक उप-सीए बनाया। मैंने इस सब-सीए का उपयोग क्लाइंट के लिए प्रमाण पत्र बनाने के लिए किया था। मैंने उप-CA और रूट CA को एक नई फ़ाइल में सम्मिलित किया। मैंने ग्राहक प्रमाणपत्र को निम्नानुसार सत्यापित किया:

$ openssl verify -purpose sslclient -CAfile auth-root.crt testcert.crt
testcert.crt: OK

ऑर्टिकल- root.crt समसामयिक उप और रूट CA है; testcert.crt क्लाइंट प्रमाणपत्र है।

मैंने nginx को root-root.crt का उपयोग करने के लिए इंगित किया ssl_client_certificate।

जब मैं testcert.crt प्रमाणपत्र का उपयोग करके HTTP अनुरोध करता हूं, तो nginx विफल हो जाता है। मैंने डिबग लॉग ऑन किया और निम्नलिखित देख सकता हूं:

2012/06/21 22:58:47 [debug] 8901#0: *2 verify:0, error:2, depth:1, subject:"/C=US/ST=Florida/L=Tampa/O=Test org/OU=Test OU/CN=AuthCerts TestCA",issuer: "/C=US/ST=Florida/L=tampa/O=Test org/OU=Test OU/CN=Root TestCA"
2012/06/21 22:58:47 [debug] 8901#0: *2 verify:0, error:27, depth:1, subject:"/C=US/ST=Florida/L=Tampa/O=Test org/OU=Test OU/CN=AuthCerts TestCA",issuer: "/C=US/ST=Florida/L=tampa/O=Test org/OU=Test OU/CN=Root TestCA"
2012/06/21 22:58:47 [debug] 8901#0: *2 verify:1, error:27, depth:0, subject:"/C=US/ST=Florida/L=Tampa/O=Accelerated Concepts/OU=NetBridge/CN=030202",issuer: "/C=US/ST=Florida/L=Tampa/O=Test org/OU=Test OU/CN=AuthCerts TestCA"

जवाबों:


13

आपको ssl_verify_depthनिर्देश सेट का उपयोग कम 2से कम करने की आवश्यकता है क्योंकि आपके प्रमाणपत्र श्रृंखला को दो हॉप्स की आवश्यकता होती है। रूट और क्लाइंट सर्टिफिकेट के बीच एक-दूसरे सब-सीए के लिए, आपको उस संख्या को एक-एक करके बढ़ाना होगा।


2
समाधान साझा करने के लिए धन्यवाद। जब आपको मौका मिले तो आप अपने खुद के उत्तर को सही मान सकते हैं।
— पोथी कालीमुथु
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.