SSL को समाप्त करने के लिए HAProxy भी SSL बैकएंड सर्वर पर भेजते हैं


15

मैं HAProxy पर एसएसएल को समाप्त करना चाहूंगा, हेडर पर कुछ हेरफेर करूं, यूआरएल को फिर से लिखूं और ट्रैफिक को फिर से एन्क्रिप्ट कर एसएसएल के रूप में बैकएंड सर्वर पर भेजूं?

मुझे ऐसा करने का कोई तरीका नहीं मिल रहा है। मैं नियमित एसएसएल समाप्ति कर सकता हूं, और बैकएंड पर सादे HTTP अनुरोध भेज सकता हूं। लेकिन मुझे एसएसएल को बैकएंड पर भेजने की आवश्यकता है।

मैं निम्नलिखित विशेषताएं रखना चाहूंगा:

  • एक्स-फॉरवर्ड किए गए हेडर के लिए, वास्तविक क्लाइंट आईपी को प्रॉक्सी के पीछे लाने के लिए।
  • कुकी का उपयोग करके सत्र चिपचिपाहट को लागू करें।
  • कुछ URL पुनर्लेखन करें।
  • कुकी आधारित सत्र स्टिकनेस का उपयोग करके बैकएंड पर एसएसएल ट्रैफ़िक भेजें।

जब तक मैं SSL को haproxy समाप्ति पर समाप्त नहीं करता, तब तक मुझे URL पुनर्लेखन नहीं मिल सकता है।

यहाँ अच्छे लोगों से किसी भी मदद की बहुत सराहना की जाएगी।


1
क्या आप अपना वर्तमान कॉन्फ़िगरेशन पोस्ट कर सकते हैं, और हमें बता सकते हैं कि क्या काम नहीं कर रहा है?
ग्रेग

जवाबों:


31

Haproxy.cfg में करने के लिए कुछ खास नहीं है। आप अपने HAProxy फ़्रेंडेंड के भीतर जो भी URL रीराइट और हेडर जोड़तोड़ चाहते हैं, उसे कॉन्फ़िगर करें और फिर ट्रैफ़िक को अपने SSL बैकएंड पर पुनर्निर्देशित करें। यहाँ एक त्वरित उदाहरण है:

frontend app1_ssl
    bind *:443 ssl crt /etc/haproxy/certs.d/example.com.crt crt /etc/haproxy/certs.d/ no-sslv3

    option http-server-close
    option forwardfor
    reqadd X-Forwarded-Proto:\ https
    reqadd X-Forwarded-Port:\ 443

    # set HTTP Strict Transport Security (HTST) header
    rspadd  Strict-Transport-Security:\ max-age=15768000

    # some ACLs and URL rewrites...

    default_backend             backend_app1_ssl


backend backend_app1_ssl
    server mybackendserver 127.0.0.1:4433 ssl verify none

1
बहुत बढ़िया! मुझे वह कोशिश करने दें। मैं उस "सर्वर .... ssl" चीज़ को कहीं भी खोजने में सक्षम नहीं था।
oazabir

आपकी मदद के लिए बहुत धन्यवाद। मैं इसे काम करने में सक्षम था। हालांकि, मुझे काम करने के लिए एसएसएल चिपचिपा नहीं मिला। क्या आप कृपया मदद कर सकते हैं? सवाल यहाँ है: serverfault.com/questions/738397/…
oazabir

महान, मुझे खुशी है कि मैं मदद करने में सक्षम था। मेरे उत्तर को स्वीकार करना न भूलें ताकि अन्य लोग तुरंत देख सकें कि यह मददगार था ;-)
ट्यूबलेस

क्या एन्क्रिप्शन वास्तव में ssl को सत्यापित करके कोई काम नहीं करता है? हाइपोक्सी दस्तावेज से, "यदि 'कोई नहीं' सेट किया गया है, तो सर्वर प्रमाणपत्र सत्यापित नहीं है। अन्य मामले में, सर्वर द्वारा प्रदान किया गया प्रमाणपत्र 'सीए-फाइल' से सीए का उपयोग करके सत्यापित किया जाता है।" क्या कोई इसे स्पष्ट कर सकता है?
mjm

साथ ssl verify noneHAProxy और बैकएंड सर्वर के बीच यातायात अभी भी एन्क्रिप्टेड है, लेकिन बैकएंड का SSL प्रमाणपत्र की वैधता की जाँच नहीं की है।
ट्यूबलेस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.