HTTPS सफारी के साथ काम नहीं करता है


16

मेरे पास अपाचे के साथ वेबसर्वर (और ऐप-सर्वर के रूप में वाइल्डफ्लाय के साथ EC2 का उदाहरण है, हालांकि मुझे यकीन नहीं है कि इसका इस मुद्दे से कोई लेना देना है)। EC2 के सामने मेरे पास एक लोड बैलेंसर है जो HTTPS को समाप्त करता है और एसएसएल प्रमाणपत्र को लागू करता है।

HTTP और HTTPS दोनों क्रोम में ठीक काम करते हैं, लेकिन दुर्भाग्य से सफारी में नहीं। Http://test.papereed.com एक्सेस करना ठीक काम करता है, लेकिन https://test.papereed.com एक्सेस करना त्रुटि देता है

"Safari can't open the page. The error is "The operation couldn't be completed. Protocol error" (NSPOSIXErrorDomain:100)"

मैंने / etc / httpd / log / error_log और / etc / httpd / लॉग / access_log में देखा है और सफारी कंसोल में भी समस्या को हल करने के लिए कोई संकेत पाए बिना। और इस बारे में कि मेरा ज्ञान कितना दूर चला जाता है :-( कोई भी संकेत देता है कि इस मुद्दे का पता कैसे लगाया जाएगा।

जवाबों:


22

कर्ल (यदि HTTP / 2 समर्थन के साथ संकलित किया गया है) एक ही समस्या प्रदर्शित करता है, लेकिन कारण दिखाता है:

http2 त्रुटि: अमान्य HTTP हेडर फ़ील्ड प्राप्त हुआ: फ़्रेम प्रकार: 1, स्ट्रीम: 1, नाम: [अपग्रेड], मूल्य: [h2, h2c]

ऐसा लगता है कि आपका सर्वर HTTP / 2 में अपग्रेड दे रहा है, भले ही कनेक्शन पहले से ही HTTP / 2 के साथ किया गया हो - जिसका कोई मतलब नहीं है। इतना ही नहीं, यह स्पष्ट रूप से मना किया गया है। से आरएफसी 7540 खंड 8.1.2.2 :

एक समापन बिंदु एक HTTP / 2 संदेश उत्पन्न नहीं करना चाहिए जिसमें कनेक्शन-विशिष्ट हेडर फ़ील्ड हों; कनेक्शन-विशिष्ट हेडर फ़ील्ड वाले किसी भी संदेश को जरूरी माना जाना चाहिए (धारा 8.1.2.6) .... कनेक्शन- विशिष्ट हेडर फ़ील्ड, जैसे की-अलाइव, प्रॉक्सी-कनेक्शन, ट्रांसफ़र-एन्कोडिंग और अपग्रेड

यह मेरे लिए एक बग दिखता है क्योंकि अपाचे को HTTP / 2 के साथ इस हेडर को नहीं भेजना चाहिए।

मेरा अनुमान है कि आपके पास इस तरह का एक विन्यास है

Protocols h2 h2c http/1.1

यह देखते हुए कि ब्राउज़र वैसे भी टीएलएस के बिना HTTP / 2 का समर्थन नहीं करते हैं और यह कि टीएसएस में HTTP / 2 के साथ कोई अपग्रेड हेडर की आवश्यकता नहीं है, मेरा सुझाव है कि आप इस कॉन्फ़िगरेशन को इसके साथ बदलें

Protocols h2 http/1.1

यह TLS के बिना अनावश्यक HTTP / 2 के लिए समर्थन को अक्षम करता है, लेकिन उम्मीद है कि अपग्रेड हेडर से इस तरह छुटकारा पाना चाहिए क्योंकि यह केवल सादे HTTP से सादे HTTP / 2 में अपग्रेड करने के लिए आवश्यक है।

संपादित करें: ओपी द्वारा टिप्पणी के अनुसार Protocolsविन्यास को बदलने से कोई मदद नहीं मिली। हेडर mod_http2को हटाकर इस व्यवहार (यानी बग) के आसपास स्पष्ट रूप से काम करना आवश्यक था Upgrade:

Header unset Upgrade

3
धन्यवाद! मैं वास्तव में निम्नलिखित config था: # Enable HTTP/2 by default # https://httpd.apache.org/docs/2.4/mod/core.html#protocols <IfModule mod_http2.c> Protocols h2 h2c http/1.1 </IfModule> आपका सुझाव के बाद और करने के लिए बदल रहा है Protocols h2 http/1.1उन्नयन हैडर को नहीं निकाला, के रूप में है और निम्नलिखित जोड़ा तो बजाय मैं प्रोटोकॉल लाइन रखा: Header unset Upgradeहैडर दूर करने के लिए। कह नहीं सकता कि मैं यहाँ क्या / क्यों के ऊपर 100% हूँ, लेकिन अब यह सफारी में भी ठीक काम करता है :-)
जोला

@ जोला: प्रतिक्रिया के लिए धन्यवाद। मैंने इसे उत्तर में शामिल किया है।
स्टीफेन उरिकच

3

मुझे लगता है कि यह एक एडब्ल्यूएस / एसएसएल मुद्दे के बजाय एक सफारी मुद्दा है। उस त्रुटि की खोज Google पर कई, कई परिणाम प्राप्त करती है।

एसएसएल शॉपर टेस्ट और एसएसएल लैब्स टेस्ट के अनुसार वेबसाइट के साथ सब कुछ जांचता है ।

मुझे समस्या का यह संभव हल मिल गया।

इसका समाधान गोपनीयता के तहत सफारी वरीयता में जाने और सभी विवरणों को सूचीबद्ध करना था। यह उन सभी साइटों का एक लॉग प्रदान करता है जहां कुकीज़ आदि का उपयोग किया गया था। मुझे वेदर नेटवर्क डोमेन पेज मिला और इससे सभी सामग्री को मंजूरी दे दी। मैं तब बिना किसी समस्या के वेदर नेटवर्क पेज को पुनः लोड करने में सक्षम था। मुझे लगता है कि यह अन्य समान विलक्षण साइटों के लिए काम करेगा।

वहाँ भी है इस जो अपाचे के साथ किया जा सकता है।


हां, मैंने इसे नजरअंदाज कर दिया है, लेकिन ऐसा कुछ भी नहीं मिला है जो सीधे लागू होता है (afaiu)। मैंने nginx के लिए प्रस्तावित समाधान पढ़ा है, लेकिन मुझे यकीन नहीं है कि / यह अपाचे के लिए कैसे लागू होता है।
जोला

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