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.