यह this question, मैं जहां उत्तर दिया है के लिए इसी तरह लग रहा है कि यह संभव नहीं है:
आप कर सकते हैं अपाचे से टॉमकैट में बस एसएसएल/टीएलएस यातायात को रिले नहीं करें। या तो आपका एसएसएल कनेक्शन अपाचे पर समाप्त होता है, और फिर आपको प्रॉक्सी को टॉमकैट (एसएसएल [एचटीपीडी और टोमकैट के बीच] यातायात में शायद ही कभी उपयोगी होता है) या आप क्लाइंट को सीधे टॉमकैट से कनेक्ट करते हैं और इसे संभालने देते हैं एसएसएल कनेक्शन।
मैं मानता हूं कि यह इस दावे को वापस करने के लिए लिंक का एक छोटा सा हिस्सा है। मुझे लगता है कि मैं गलत हो सकता हूं (मैंने इसे कभी नहीं देखा है, लेकिन इसका सख्ती से यह मतलब नहीं है कि यह अस्तित्व में नहीं है ...)।
जैसा कि आप जानते हैं, आपको उपयोगकर्ता-एजेंट और एसएसएल एंडपॉइंट (इस मामले में, आप इसे टॉमकैट होना चाहते हैं) के बीच एक सीधा कनेक्शन या कनेक्शन पूरी तरह से रिलेड की आवश्यकता है। इसका अर्थ यह है कि अपाचे एचटीपीडी यूआरएल को देखने में सक्षम नहीं होगा: यह मेजबान का नाम सबसे अच्छा होगा (सर्वर नाम संकेत का उपयोग करते समय)।
ही एकमात्र विकल्प है कि mod_proxy
documentation में एक यूआरएल पर निर्भर नहीं लगता AllowCONNECT
, जो है आगे प्रॉक्सी सर्वर के लिए HTTPS के लिए क्या प्रयोग किया जाता है है।
यहां तक कि the options in mod_proxy_balancer
कॉन्फ़िगरेशन के किसी बिंदु पर पथ की अपेक्षा करता है। इसके प्रलेखन SSL/HTTPS का उल्लेख नहीं करता है ("यह लोड HTTP, FTP और AJP13 प्रोटोकॉल के लिए समर्थन संतुलन प्रदान करता है"), जबकि mod_proxy
वार्ता में कम से कम एसएसएल के बारे में जब CONNECT
उल्लेख।
मैं विकल्पों में से एक जोड़े को सुझाव है:
, एक iptables
आधारित लोड संतुलन का उपयोग httpd माध्यम से जा रहा बिना, बिलाव में कनेक्शन समाप्त होने सीधे।
एचटीपीडी में एसएसएल/टीएलएस कनेक्शन समाप्त करना और टॉमकैट को एक सादा HTTP रिवर्स प्रॉक्सी का उपयोग करना।
इस दूसरे विकल्प को क्लाइंट प्रमाणपत्रों और टॉमकैट की सुरक्षा बाधाओं से निपटने के लिए थोड़ा और कॉन्फ़िगरेशन की आवश्यकता है।
यदि आपने <transport-guarantee>CONFIDENTIAL</transport-guarantee>
के साथ अपना वेबपैड कॉन्फ़िगर किया है, तो आपको टॉमकैट को कनेक्शन को सुरक्षित के रूप में फ़्लैग करना होगा, तथ्य यह है कि यह उन्हें अपने सादे HTTP पोर्ट से आने के बावजूद देखता है। isSecure()
सेट करने के लिए वाल्व को कार्यान्वित करने का तरीका बताते हुए टोमकैट 5, here is an article (मूल रूप से फ़्रेंच में, लेकिन स्वचालित अनुवाद बहुत खराब नहीं है) का वर्णन करते हैं। (यदि आप valves से परिचित नहीं हैं, तो वे फ़िल्टर के समान हैं, लेकिन वेबपैप पर अनुरोध प्रचारित होने से पहले, टॉमकैट के भीतर ही काम करते हैं। उन्हें कैटालिना के भीतर कॉन्फ़िगर किया जा सकता है) मुझे लगता है कि टॉमकैट 5.5 से, HTTP connector secure
option बिल्कुल ठीक है, अपने वाल्व की आवश्यकता के बिना। एजेपी कनेक्टर में भी एक समान विकल्प है (यदि mod_proxy_ajp
या mod_jk
का उपयोग कर रहा है)।
यदि एजेपी कनेक्टर का उपयोग कर रहे हैं, mod_proxy_ajp
श्रृंखला में पहला प्रमाणपत्र अग्रेषित करेगा और इसे टॉमकैट (सामान्य अनुरोध विशेषता के माध्यम से) के भीतर उपलब्ध कराएगा। आपको शायद SSLOptions +ExportCertData +StdEnvVars
की आवश्यकता होगी। mod_jk
(हालांकि मुझे पता है कि बहिष्कृत) ग्राहक द्वारा भेजे गए पूरे श्रृंखला को भी अग्रेषित कर सकता है (JkOptions +ForwardSSLCertChain
का उपयोग करके)। यह proxy certificates का उपयोग करते समय आवश्यक हो सकता है (जो कि उनके अंत-इकाई प्रमाण पत्र तक श्रृंखला के बिना अर्थहीन हैं)।
यदि आप mod_proxy_http
का उपयोग करना चाहते हैं, तो RequestHeader set X-ClientCert %{SSL_CLIENT_CERT}s
जैसे कुछ का उपयोग करके प्रमाणपत्र को an HTTP header (mod_header
) के माध्यम से प्रमाण पत्र पास करना है। मुझे सटीक विवरण याद नहीं आ रहे हैं, लेकिन यह सुनिश्चित करना महत्वपूर्ण है कि यह हेडर साफ़ हो गया है ताकि यह क्लाइंट के ब्राउज़र से कभी न आए (जो इसे अन्यथा बना सकता है)। अगर आपको पूर्ण श्रृंखला की आवश्यकता है, तो आप this Httpd patch attempt आज़मा सकते हैं। हेडर को javax.servlet.request.X509Certificate
(पीईएम ब्लॉक को पार्स करके) में बदलने के लिए इस दृष्टिकोण को शायद अतिरिक्त वाल्व/फ़िल्टर की आवश्यकता होगी।
अन्य बिंदुओं कि रुचि का हो सकता के एक जोड़े:
- अगर मैं अच्छी तरह से याद है, आप सीआरएल httpd और configure it to use them के लिए स्पष्ट रूप से फ़ाइलों को डाउनलोड करने की जरूरत है। आप जिस एचटीपीडी का उपयोग कर रहे हैं उसके संस्करण के आधार पर, आपको restart it to reload the CRLs हो सकता है।
- यदि आप अपने क्लाइंट-सर्टिफिकेट प्राप्त करने के लिए पुनः बातचीत का उपयोग कर रहे हैं, तो
CLIENT-CERT
निर्देश एचटीपीडी क्लाइंट सर्टिफिकेट को जहां तक मुझे पता है, यह अनुरोध नहीं करेगा (यह अन्यथा वाल्व के माध्यम से किया जाता है जो SSLSession
तक पहुंच सकता है जेएसएसई कनेक्टर सीधे)। क्लाइंट-प्रमाणपत्र का अनुरोध करने के लिए आपको Httpd में मिलान पथ को कॉन्फ़िगर करना पड़ सकता है।
@downvoter आपका बिंदु? – EJP