Apache Loadbalancer और backends के बीच Https का उपयोग करना


30

मैं एक अपाचे (2.4) सर्वर का उपयोग कर रहा हूं जो 2 अपाचे सर्वरों के सामने लोडबेलर के रूप में कॉन्फ़िगर किया गया है। लोडबॉलर और बैकएंड के बीच http कनेक्शन का उपयोग करने पर यह ठीक काम करता है, हालांकि https का उपयोग करने से काम नहीं चलता है। भारोत्तोलक का विन्यास:

SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
<Proxy balancer://testcluster>
  BalancerMember https://[Backend1]:443/test
  BalancerMember https://[Backend2]:443/test
</Proxy>
ProxyPass /test balancer://testcluster

बैकएंड में अभी के लिए स्व-हस्ताक्षरित प्रमाण पत्र हैं, यही वजह है कि प्रमाण पत्र सत्यापन अक्षम है।

लोडबॉलर पर त्रुटि-लॉग में निम्नलिखित शामिल हैं:

[proxy:error] [pid 31202:tid 140325875570432] (502)Unknown error 502: [client ...] AH01084: pass request body failed to [Backend1]:443 ([Backend1])
[proxy:error] [pid 31202:tid 140325875570432] [client ...] AH00898: Error during SSL Handshake with remote server returned by /test/test.jsp
[proxy_http:error] [pid 31202:tid 140325875570432] [client ...] AH01097: pass request body failed to [Backend1]:443 ([Backend1]) from [...] ()

ब्राउज़र में त्रुटि-पृष्ठ में है:

Proxy Error

The proxy server could not handle the request GET /test/test.jsp.
Reason: Error during SSL Handshake with remote server

जैसा कि मैंने पहले ही कहा था कि http प्रोटोकॉल और पोर्ट 80 वर्क के लिए कॉन्फ़िगरेशन बदलना। क्लाइंट और लोडबेलर के बीच https कनेक्शन भी काम करता है, इसलिए लोडबॉलर का ssl मॉड्यूल ठीक से सेटअप होने लगता है। Https के माध्यम से बैकएंड से सीधे जुड़ने से भी कोई त्रुटि नहीं होती है।

आपके समय के लिए आपका अग्रिम धन्यवाद


संपादित करें: मुझे यह समझ में आया, समस्या यह है कि मेरे प्रमाणपत्र सामान्य नाम सर्वर नाम से मेल नहीं खाते हैं। मुझे लगा कि SSLProxyVerify कोई भी इस मिसमैच को नजरअंदाज नहीं करेगा, लेकिन ऐसा नहीं है। 2.4.5 अपाचे से पहले इस चेक को SSLProxyCheckPeerCN से बंद करके अक्षम किया जा सकता है लेकिन उच्चतर संस्करणों पर (मैं 2.4.7 का उपयोग कर रहा हूं) SSLProxyCheckPeerName बंद को भी निर्दिष्ट करने की आवश्यकता है।

Sslproxycheckpeername के लिए अपाचे प्रलेखन

कार्य विन्यास इस तरह दिखता है:

SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off

<Proxy balancer://testcluster>
  BalancerMember https://[backend1]:443/test
  BalancerMember https://[backend1]:443/test
</Proxy>
ProxyPass /test balancer://testcluster

दुर्भाग्य से मैं प्रतिष्ठा की कमी के लिए अपने स्वयं के प्रश्न का उत्तर नहीं दे सकता हूं इसलिए मैंने अपना प्रश्न संपादित किया, मुझे आशा है कि इससे किसी को भी समस्या का सामना करने में मदद मिलेगी


दिलचस्प। मैं Apache2.2 के साथ ऐसा करता था और कभी भी SSLProxyVerify को किसी को भी नहीं करना पड़ा और कभी भी सेल्फ-साइन प्रिंट की समस्या नहीं हुई। आपको यकीन है कि बैकएंड सर्वर ठीक है।?
ईटीएल

@ETL मुझे नहीं पता कि "SSLProxyVerify कोई नहीं" की आवश्यकता है या नहीं, मैंने सिर्फ इतना जोड़ा कि इस समस्या को हल करने की उम्मीद में। लोड-बैलेंसर सर्वर पर "wget ​​https: // [backend1] /test/test.jsp --no-check-certificate" को कॉल करके अपेक्षित फ़ाइल डाउनलोड की जाती है। एनजी
user3240383

जवाबों:


16

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

अपाचे 2.4.5 से पहले इस चेक का उपयोग करके अक्षम किया जा सकता है SSLProxyCheckPeerCN offलेकिन उच्च संस्करणों (जैसे 2.4.7) पर SSLProxyCheckPeerName offभी निर्दिष्ट करने की आवश्यकता होती है।

के लिए अपाचे प्रलेखन SSLProxyCheckPeerName

कार्य विन्यास इस तरह दिखता है:

SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off

<Proxy balancer://testcluster>
  BalancerMember https://[backend1]:443/test
  BalancerMember https://[backend1]:443/test
</Proxy>
ProxyPass /test balancer://testcluster

आप अपाचे के संस्करण की जांच कर सकते हैं जो आपके पास है:

apachectrl -V

अरे मेरे पास ठीक यही समस्या है सिवाय कॉन्फ़िगरेशन के थोड़ा अलग है: <Location /margin-tool> ProxyPass https://xxxx.thoughtworks.net:8443/margin-tool ProxyPassReverse https://xxxx.thoughtworks.net:8443/margin-tool </Location>समान सेटिंग्स काम नहीं कर रही हैं। कोई विचार?
user157735

0

नीचे जोड़ने से समस्या हल हो गई

SSLProxyProtocol +TLSv1

5
रहस्यमय विन्यास के नमूने देना एक अच्छी गुणवत्ता वाला उत्तर नहीं है। इंटरनेट से कॉपी-पेस्ट करने वाले तार वह नहीं है जो एक पेशेवर सिस्टम प्रशासक करता है। इसे समझाएं, यह क्या और क्यों करता है।
पीटर कहते हैं कि मोनिका

java12 के साथ इस में भाग गया - अन्य बातों के अलावा, इसने मेरी समस्या को हल कर दिया ....
womd

-2

मैं Apache 2.4.9 का उपयोग करता हूं और httpd-ssl.conf को निम्न कोड में जोड़ता हूं

SSLProxyProtocol + SSLv3 + TLSv1 + TLSv1.1

मैंने समस्याओं को हल किया है


3
कभी सुना POODLE ? SSLv3 को अक्षम किया जाना चाहिए।
स्वेन

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