Https वेबसर्वर त्रुटि को शूट करने में सहायता की आवश्यकता है - SSL हैंडशेक विफल


9

मैंने इस गाइड का अनुसरण किया: http://hints.macworld.com/article.php?story=20041129143420344

यहाँ मेरी वर्चुअल होस्ट परिभाषा है

<VirtualHost *:443>
    SSLEngine on
    SSLProxyEngine On
    RequestHeader set Front-End-Https "On"
    CacheDisable *
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    DocumentRoot "/Users/me/projects/myproject/public"
    ServerName ssl.mydomain.com
    ServerAlias *.ssl.mydomain.com
    SSLCertificateKeyFile "/private/etc/apache2/certs/webserver.nopass.key"
    SSLCertificateFile "/private/etc/apache2/certs/newcert.pem"
    SSLCACertificateFile "/private/etc/apache2/certs/demoCA/cacert.pem"
    SSLCARevocationPath "/private/etc/apache2/certs/demoCA/crl"
    ErrorLog "/Users/me/Desktop/ssl.log"

    ProxyPass / https://localhost:3002/
    ProxyPassReverse / https://localhost:3002
    ProxyPreserveHost on    
</VirtualHost>

और जब मैं sevre viov को वेब ब्राउज़र से कनेक्ट करने का प्रयास करता हूं, मुझे यह त्रुटि मिलती है:

[Thu Feb 02 16:50:40 2012] [error] (502)Unknown error: 502: proxy: pass request body failed to 127.0.0.1:3002 (localhost)
[Thu Feb 02 16:50:40 2012] [error] [client 96.11.81.39] proxy: Error during SSL Handshake with remote server returned by /session/new
[Thu Feb 02 16:50:40 2012] [error] proxy: pass request body failed to 127.0.0.1:3002 (localhost) from 96.11.81.39 ()

मैं इसे कैसे डिबग / फिक्स करूं?

जवाबों:


12

Vbartoni के उत्तर में जोड़ने के लिए, ऐसा लगता है कि अपाचे 2.4 और ऊपर से, अलग-अलग चूक और एक नया निर्देश है।

मैं Apache 2.4.6 चला रहा हूं, और मुझे इसे काम करने के लिए निम्नलिखित निर्देश जोड़ना पड़ा:

SSLProxyEngine on
SSLProxyVerify none 
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off

1
यह काम करता है - केवल उन सभी निर्देशों के साथ जो इसकी शिकायत नहीं करने वाले हैं।
माइकल बॉकलिंग 17

@ MichaelBöckling धन्यवाद कि मुझे आयोजित किया। मैं विशेष रूप से इंगित करना चाहता हूं कि दस्तावेज़ीकरण में कहा गया है कि यह SSLProxyCheckPeerNameसुधारेगा SSLProxyCheckPeerCNलेकिन यह तब तक काम नहीं करेगा जब तक आप सभी निर्देशों को निर्दिष्ट नहीं करते ।
दोहरी'

3

अपने फ्रंट-एंड और अपने बैक-एंड सर्वर के बीच HTTPS से परेशान न हों, एक localhostकनेक्शन के लिए SSL को सक्षम करने में बहुत कम बिंदु हैं ।

स्पष्ट करने के लिए, के ProxyPass / http://localhost:3002/बजाय का उपयोग करेंProxyPass / https://localhost:3002/


वैकल्पिक रूप से, यदि आप वास्तव में एसएसएल का उपयोग करके अपने रिवर्स प्रॉक्सी को बैक-एंड सर्वर से कनेक्ट करना चाहते हैं (ज्यादातर तब उपयोगी होता है जब वह सर्वर जहां अपाचे हेटपेड रिवर्स प्रॉक्सी है), इसके अलावा https://backend-server-address, SSLProxy*सेट करने के लिए निर्देशों का उपयोग करें सीए सेर्ट्स, जैसा कि प्रलेखन के परिचय में mod_proxyप्रलेखित है । विशेष रूप से, आपको कॉन्फ़िगर करने SSLProxyCACertificateFileऔर यह सुनिश्चित करने की आवश्यकता होगी कि बैकएंड सर्वर का प्रमाण पत्र सही मेजबान के नाम पर जारी किया गया है, जैसा कि अपाचे हेटपैड ( localhostआपके मामले में) द्वारा देखा गया है


यदि आप एसएसएल का उपयोग कर अपने बैक-एंड सर्वर से कनेक्ट नहीं कर रहे हैं, तो यह पता लगाने में विफल हो सकता है कि आप वास्तव में एसएसएल का उपयोग कर रहे हैं और आपको एसएसएल में जाने के लिए मजबूर करने के लिए कॉन्फ़िगर किया गया है (इसलिए अनंत रीडायरेक्ट)। आप इसी तरह के तंत्र को देखना चाहते हैं कि जेट्टी अपने forwardedविकल्प के साथ क्या करता है (एक प्रॉक्सी के पीछे यह बैक-एंड बताने में सक्षम है)। रेल X-Forwarded-Protoडिफ़ॉल्ट रूप से व्याख्या करने में सक्षम हो सकती है । इस स्थिति में, इसे अपने अपाचे कॉन्फ़िगरेशन (SSL वर्चुअल होस्ट में) में जोड़ें:

RequestHeader set X-Forwarded-Proto 'https'

उदाहरण के लिए, यहां इसी तरह का एक मुद्दा चर्चा में लगता है ।


SSLProxy केवल उस लिंक पर एक बार उल्लेख किया गया है। इसका उपयोग कैसे करें, इसका कोई उदाहरण नहीं। मैंने X-Forwarded-Proto 'https' सेट करने के लिए अनुरोध शीर्षलेख को बदल दिया ... लेकिन यह अभी भी काम नहीं करता है / मुझे वही त्रुटि मिलती है। लोकलहोस्ट करने के लिए : 3002 भी एक ही त्रुटि देता है
NullVoxPopuli

Https को लोकलहोस्ट से कनेक्ट करने के वैध कारण हैं: उदाहरण के लिए HTTPS बैक-एंड में socket.io। यह मिश्रित सामग्री के साथ त्रुटियों के माध्यम से होगा।
फ्लोरेस्टन

3

मुझे एक समान समस्या थी (एक ही त्रुटि लॉग), सिवाय इसके कि प्रॉक्सी किसी अन्य होस्ट को https ट्रैफ़िक अग्रेषित कर रहा था।
चूंकि मैं आलसी था और मेजबान अपने अलग नेटवर्क में थे, इसलिए इन निर्देशों ने समस्या हल कर दी:

SSLProxyVerify कोई नहीं
SSLProxyCheckPeerCN बंद


1

यदि बैकएंड सर्वर स्व-हस्ताक्षरित प्रमाणपत्र का उपयोग करता है, तो एक और विकल्प की आवश्यकता है (यदि बैकएंड सर्वर तक कोई पहुंच नहीं है):

SSLProxyCheckPeerExpire बंद करें

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