HTTP हेडर के माध्यम से बैकएंड करने के लिए एसएसएल प्रोटोकॉल जानकारी पास करना


13

हाल ही में पूडल भेद्यता प्रकट होने के बाद, हमारी टीम ने एसएसएलवी 3 से आगे बढ़ने का फैसला किया। लेकिन पूरा हटाने से पहले, वे करना चाहते हैं चेतावनी दी दैनिक उपयोगकर्ताओं है कि उनके ब्राउज़र उपयोग पदावनत SSLv3। इसलिए, हमें यह विचार आया

  • प्रोटोकॉल का पता लगाएं (एसएसएलवी 3, टीएलएस 1 आदि ...) सामने के अंत से एसएसएल-ऑफलोडिंग (हम nginx का उपयोग करते हैं)
  • Apache-backend के लिए HTTP हेडर के माध्यम से उस जानकारी (एसएसएल प्रोटोकॉल) को पास करें।

तब हमारा बैकएंड कोड उस हेडर को प्रोसेस करेगा और क्लाइंट SSLv3 का उपयोग करने पर चेतावनी देगा ।

मुझे पता है कि nginx में सुविधा है proxy_set_header। तो यह एक सरल होगा

proxy_set_header X-HTTPS-Protocol $something;

अब, समस्या यह है: जाहिर है कि nginx क्लाइंट द्वारा उपयोग किए जाने वाले प्रोटोकॉल को जानता है, लेकिन मैं उस जानकारी को HTTP हेडर के माध्यम से बैकएंड कैसे पास कर सकता हूं?

धन्यवाद


जैसा कि थ्रेड अपाचे उपयोगकर्ता द्वारा बताया गया है यदि वे SSLv3 का उपयोग कर रहे हैं , तो यह विचार बहुत बुरा विचार बन सकता है।

टीएलएस सुरंग के माध्यम से HTTP ट्रैफिक भेजे जाने से पहले टीएलएस हैंडशेक होता है। जब तक हमारे बैकएंड एसएसएल प्रोटोकॉल का पता लगाता है, तब तक ग्राहक अपने पहले अनुरोध में निजी डेटा भेज सकता है। स्थायी और दीर्घकालिक समाधान के लिए हमें SSLv3 को अक्षम करने पर विचार करना चाहिए।

जवाबों:


14

Nginx कई वैरिएबल का उपयोग करता है जो कि कॉन्फिगर में इस्तेमाल किया जा सकता है। इस पृष्ठ ने चर की पूरी सूची प्रदान की। HTTPS अनुरोध में प्रोटोकॉल रखने वाला चर है ssl_protocol। प्रशस्ति पत्र:

$ssl_protocol

एक स्थापित एसएसएल कनेक्शन का प्रोटोकॉल लौटाता है;

तो आपका proxy_set_headerविन्यास होगा

proxy_set_header X-HTTPS-Protocol $ssl_protocol;

एक और संदर्भ: यहाँ


$ Ssl_protocol के अंत में गुम अर्धविराम (मैं इसे बदल नहीं सकता क्योंकि सर्वर * l को 6 वर्ण बदलने की आवश्यकता है)।
खतरे '

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