मेरा ऐप एसएसएल का उपयोग सर्वर के साथ सुरक्षित रूप से संवाद करने के लिए करता है और उसे प्रमाणपत्र श्रृंखला की पुष्टि करने में परेशानी हो रही है। श्रृंखला इस तरह दिखता है:एसएसएल प्रमाणपत्र श्रृंखला सत्यापन
Entrust.net सुरक्षित सर्वर प्रमाणन प्राधिकरण -> DigiCert वैश्विक सीए -> * .ourdomain.com
हम प्रयोग कर रहे हैं एक प्रमाणपत्र संग्रह मोज़िला से खींच लिया। इसमें Entrust.net प्रमाण पत्र है, लेकिन DigiCert Global CA एक नहीं है।
मेरे समझ एक मध्यवर्ती अधिकार के रूप में लंबे रूट अधिकार है के रूप में भरोसा किया जा की जरूरत नहीं है कि है, लेकिन सत्यापन विफल रहता है:
% openssl verify -CAfile mozilla-root-certs.crt ourdomain.com.crt
error 20 at 0 depth lookup:unable to get local issuer certificate
तो मैं स्पष्ट रूप में DigiCert वैश्विक सीए पर भरोसा करने की जरूरत है सत्यापन के लिए आदेश पास करने के लिए आदेश? यह गलत लगता है। लेकिन तुम मुझे बताओ!
संपादित करें: अब मैं समझता हूं कि प्रमाणपत्र फ़ाइल को ओपनएसएसएल के सामने उपलब्ध होना चाहिए। कुछ इस तरह काम करता है:
% openssl verify -CAfile mozilla-root-certs.crt -untrusted digicert.crt ourdomain.com.crt
ourdomain.com.crt: OK
यह स्पष्ट रूप से कहा, "मैं यह भरोसा", पूरी श्रृंखला अभी भी सत्यापित किया जाना आवश्यक बिना DigiCert सीए की एक प्रति उपलब्ध कराने के लिए अनुमति देता है मुझे।
लेकिन निश्चित रूप से फ़ायरफ़ॉक्स जैसे ब्राउज़र हमेशा आवश्यक प्रत्येक प्रमाणपत्र की एक प्रति के साथ शिप नहीं होंगे। हमेशा नए सीए होने जा रहे हैं और बिंदु यह सुनिश्चित करने के लिए रूट प्रमाण पत्र की सुरक्षा का उपयोग करना है कि सभी मध्यवर्ती सीए वैध हैं। सही? तो यह काम करता है? क्या यह वाकई मूर्खतापूर्ण है जैसा दिखता है?
ओपनबीएसडी पर, '-CAfile' को '/ etc/ssl/cert.pem' पर सेट किया जा सकता है। –