2012-11-14 23 views
5

मैं विशिष्ट क्लाइंट प्रमाणपत्रों पर भरोसा करने के लिए अपाचे httpd को कैसे कॉन्फ़िगर कर सकता हूं?अपाचे httpd: विशिष्ट क्लाइंट प्रमाणपत्रों पर भरोसा कैसे करें?

हमें किसी विशिष्ट (ज्ञात) साझेदार के सर्वर पर किसी webservice तक पहुंच प्रतिबंधित करने की आवश्यकता है।
हमने इसके लिए एक सीए-आधारित समाधान का उपयोग करने की योजना बनाई है (एक विश्वसनीय सीए जो केवल विश्वसनीय सीएसआर पर हस्ताक्षर करेगा जैसा कि हमने उन्हें स्वीकार किया है); हालांकि, हमारी कंपनी का सीए बाहरी कंपनियों के लिए प्रमाण पत्र नहीं बनाएगा।

आवश्यक पीकेआई तैयार होने तक सुरक्षित कनेक्शन स्थापित करने के लिए, हम विशिष्ट क्लाइंट प्रमाण पत्र को हमारे अपाचे httpd प्रॉक्सी पर विश्वसनीय के रूप में कॉन्फ़िगर करना चाहते थे।

लेकिन httpd ग्राहकों, जो क्लाइंट प्रमाणपत्र, जो CACertificateFile (श्रेणीबद्ध X509 Base64 में और डीईआर प्रारूप (पीईएम) की इनकोडिंग प्रमाण पत्र) में जोड़ा गया है का उपयोग करके कनेक्ट करने के लिए कोशिश कर रहे हैं से कनेक्शन स्वीकार नहीं करता है, के लिए कॉन्फ़िगर आभासी मेजबान।

क्लाइंट प्रमाणपत्र इस मामले में स्वयं हस्ताक्षरित प्रमाणपत्र नहीं है।

उत्तर

4

आप CA प्रमाणपत्र आप SSLCACertificateFile या SSLCACertificatePath के माध्यम से भरोसा कॉन्फ़िगर और SSLVerifyClient (optional या required, नहीं optional_no_ca है, जो किसी भी प्रमाणीकरण प्रदर्शन नहीं होगा) का उपयोग सर्वर अनुरोध क्लाइंट प्रमाणपत्र बनाने के लिए करना चाहिए।

यदि आप SSLVerifyClient का उपयोग सीधे अपने VirtualHost अनुभाग में करते हैं, तो क्लाइंट प्रमाणपत्र प्रारंभिक हैंडशेक के दौरान भेजा जाएगा। यदि आप इसे Directory/.htaccess के भीतर रखते हैं, तो क्लाइंट प्रमाणपत्र फिर से बातचीत की जाएगी।

जब प्रारंभिक हैंडशेक में प्रमाणपत्र भेजा जाता है तो डीबग करना आसान होता है, क्योंकि क्लाइंट प्रमाणपत्र स्वयं एन्क्रिप्ट नहीं किया जाएगा। आपको Wireshark (क्लाइंट द्वारा भेजे गए Certificate संदेश में) के साथ यातायात को देखकर इसे देखने में सक्षम होना चाहिए। डीबगिंग करते समय, यह जांचने योग्य है कि Certificate Request संदेश सर्वर द्वारा भेजा जाता है, और इसकी प्रमाणीकरण प्राधिकरण सूची को देखता है।

समस्या का एक सामान्य कारण एक ग्राहक होगा जो उस सूची या क्लाइंट को पहचान नहीं पाएगा जो इसकी आवश्यकता होने पर अपने मध्यवर्ती सीए प्रमाण पत्र नहीं भेजता है।

आप तो अधिक विशेष रूप से कुछ प्रमाण पत्र अधिकृत करना चाहते हैं, तो आप चर एसएसएल चर जांच कर सकते हैं (उदाहरण के लिए SSL_CLIENT_S_DN_*) और एक SSLRequire निर्देश में इसका इस्तेमाल करते हैं (example देखें)।

+2

हाय ब्रूनो, हम कुछ प्रमाण पत्र को विशेष रूप से भी अधिकृत करना चाहते हैं। एसएसएल चर की जांच करते समय, क्या हमारे मामले में सर्टिफिकेट के थंबप्रिंट/फिंगरप्रिंट की जांच करने के लिए वैसे भी है, यह एकमात्र जानकारी है जिसे हम अधिकृत करने के लिए उपयोग कर सकते हैं। लेकिन मैंने पाया कि ऐसा कोई चर नहीं है। – Xilang

+2

या, प्रमाणपत्र की सार्वजनिक कुंजी प्राप्त करने के लिए चर है? मुझे यह भी नहीं मिला। – Xilang

+0

आप ग्राहक प्रमाणपत्र (जो एसएसएल हैंडशेक के माध्यम से आ रहा है) को '.htaccess' जैसी निर्देशिका में कैसे डालते हैं? – Promod

संबंधित मुद्दे