2009-12-30 10 views
7

पर एसएसएल समस्या मैंने वेबसाइट पर एक एसएसएल प्रमाणपत्र (गोडाडी से, लेकिन रैपिड्सस्ल की भी कोशिश की है) जोड़ा है।आईफोन

सफारी, और आईई दोनों https: // पर ब्राउज़ कर सकते हैं और रिपोर्ट कर सकते हैं कि प्रमाणपत्र मान्य है, बिना किसी चेतावनी के। यदि, हालांकि, मैं एक आईफोन से एक ही पते पर ब्राउज़ करने का प्रयास करता हूं तो मुझे एक अवैध प्रमाणपत्र त्रुटि मिलती है। मैं प्रश्न में वेबसाइट के लिए एक मेजबान के रूप में heroku का उपयोग कर रहा हूँ।

क्या किसी ने इसे देखा है? मैं स्टंप हो गया हूं कि 2 अलग-अलग आईफ़ोन ऐसा करने में असफल क्यों होंगे, लेकिन डेस्कटॉप ब्राउज़र ठीक हैं ...

+1

मुझे लगता है कि सर्वरफॉल्ट इसके लिए एक बेहतर जगह हो सकता है। – notnoop

उत्तर

8

समस्या यहां पता चला कि iPhone का समर्थन नहीं करता सर्वर नाम संकेत (SNI) है, जो Heroku से SNI SSL बनाने के लिए काम करने के लिए आवश्यक है किया जाना है। (संपादित करें) अब यह आईओएस 3.2 के बाद समर्थित है।

https://sni.velox.ch

मैं पता लगा मैं iphone ग्राहक में निम्नलिखित SSL सेटिंग सेट कर सकते हैं:

kCFStreamSSLPeerName =

आप फोन पर सफारी से निम्नलिखित URL पर जाकर SNI पुष्टि कर सकते हैं शून्य

... और यह समस्या को हल करता है। लेकिन मुझे अभी तक पता नहीं चला है कि यह सुरक्षा को कैसे प्रभावित करता है - दस्तावेज़ बहुत स्पष्ट नहीं हैं।

जहां तक ​​मैं इसे समझता हूं, जब आप क्लाउड होस्ट पर एक कस्टम डोमेन सेट करते हैं, तो यह प्रॉक्सी को इंगित करता है, और वह नाम आपके प्रमाणपत्र होस्ट नाम से मेल नहीं खाता है। सफारी और आईई जैसे ब्राउज़र एसएनआई का समर्थन करते हैं, और जानते हैं कि इसे कैसे समझें - लेकिन फोन नहीं करता है।

जैसा कि मैंने उपरोक्त कहा है, यह अब तक कोई मुद्दा नहीं है, जब तक आप आईओएस 3.1.3 या उससे कम का समर्थन नहीं कर रहे हैं ...

+0

आसान लिंक के लिए धन्यवाद। एफवाईआई ने अभी आईओएस 4 आधारित आईफोन पर कोशिश की और यह आईओएस 4 में समर्थित है। मैंने पिछले संस्करणों की कोशिश नहीं की। – jdkoftinoff

+0

मुझे लगता है कि आईएनए पर एसएनआई समर्थन नहीं है - 3.2.2 बस अभी कोशिश की। यह एक आईफोन 4.1 पर काम करता है और इसलिए यह आईपैड 4.2 पर भी काम करना चाहिए, ऐसा लगता है। यह एक हेरोकू एसएनआई साइट पर है जो हर जगह काम करता है, एक्सपी (एक्सपी एसपीआई का समर्थन नहीं करता है) –

1

बस इसलिए कि उन दो प्रमाणपत्र प्राधिकरण आईफोन के विश्वसनीय प्रमाणपत्र स्टोर में नहीं हैं, लेकिन वे विंडोज के लिए हैं, फ़ायरफ़ॉक्स, आदि

संपादित करें:

मैं पिछले पोस्टर सही, आप मध्यवर्ती प्रमाणपत्र bundling नहीं कर रहे हैं है अनुमान लगा रहा हूँ। आप प्रमाणपत्र को rapidssl.com द्वारा हस्ताक्षरित किया गया हो सकता है, लेकिन रैपिड्सस्ल डॉट कॉम का प्रमाणपत्र इक्विफैक्स द्वारा हस्ताक्षरित किया गया था। प्रत्येक प्रमाणपत्र में एक जारीकर्ता नाम फ़ील्ड और विषय नाम फ़ील्ड होता है; इन्हें नामों की एक जोड़ी (एक्स, वाई) के रूप में सोचें। आपके प्रमाणपत्र का विषय नाम आपकी वेबसाइट का नाम दर्शाता है, और इसे रैपिड्सस्ल द्वारा हस्ताक्षरित किया गया था, ताकि जोड़ी कुछ ऐसा हो (रैपिड्सस्ल, www.whatever.com)। रैपिड्सस्ल प्रमाण को इक्विफैक्स द्वारा हस्ताक्षरित किया गया था, जिससे जोड़ी (इक्विफैक्स, रैपिड्सस्ल) बना सके। और equifax प्रमाण हो सकता है (equifax, equifax)। रूट प्रमाण में एक ही जारीकर्ता और विषय का नाम होना चाहिए। जैसा कि आप देख सकते हैं, यह फॉर्म (ए, ए) (ए, बी) (बी, सी) (सी, डी) .... की एक श्रृंखला बनाता है, हालांकि यह लंबे समय तक जाता है। यह शायद 3 से अधिक लंबा है। एसएसएल के लिए नियम यह है कि आपको में रूट प्रमाणपत्र को छोड़कर प्रत्येक प्रमाण पत्र भेजना चाहिए। कुछ ग्राहकों के पास पहले से ही मध्यवर्ती प्रमाणपत्र हो सकते हैं, लेकिन आपको उस पर भरोसा नहीं करना चाहिए।

+0

दोनों प्रदाता प्रमाणपत्र स्टोर में हैं, सेब के अनुसार: http://support.apple.com/kb/HT3580 – cmaughan

+0

प्रमाणपत्र श्रृंखला आपके प्रमाणपत्र की तरह दिखती है? मुझे जारीकर्ता और विषय डीएन में दिलचस्पी है, जिसमें आपके प्रमाण के विषय डीएन शामिल नहीं हैं। –

+0

श्रृंखला मूल रूप से 'इक्विफैक्स सुरक्षित प्रमाणपत्र प्राधिकरण' है, जिसके तहत मेरे पास डोमेन के लिए मेरा प्रमाण पत्र है। मुझे यकीन नहीं है कि 'विषय डीएन' द्वारा आपका क्या मतलब है? – cmaughan

7

आपको इंटरमीडिएट सर्टिफिकेट को संदर्भित करने की भी आवश्यकता है ताकि आपके पास संपूर्ण प्रमाणपत्र श्रृंखला रूट प्रमाणपत्र में वापस हो।

एक ही समस्या के विवरण के लिए this blog post देखें और यह अपाचे के लिए इसे कैसे हल किया गया।

+0

मैंने गोडाडी प्रमाण के लिए ऐसा किया - आप बस अपने प्रमाण पत्र के साथ बंडल को बिल्ली बनाते हैं। ध्यान दें कि मैंने कहा है कि यह उन सभी ब्राउज़रों पर ठीक काम करता है जो मैंने कोशिश की है, सिर्फ आईफोन नहीं, इसलिए सुनिश्चित करें कि प्रमाण पत्र सही तरीके से स्थापित है। – cmaughan

+0

मुझे यह वही समस्या थी (ब्लैकबेरी के साथ-साथ आईफोन के साथ)। यह बिल्कुल यही था। सर्वर सिर्फ प्रमाण भेज रहा था और क्लाइंट को इंटरमीडिएट प्रमाण के साथ-साथ रूट प्रमाण भी प्राप्त करने की उम्मीद कर रहा था। मोबाइल उपकरणों में कई बार इन इंटरमीडिएट कॉर्ट स्थापित नहीं होते हैं, इसलिए ट्रस्ट श्रृंखला टूट जाती है। –

+0

उदाहरण के तौर पर, मेरे फ़ायरफ़ॉक्स 3.5.6 में गो डैडी इंटरमीडिएट प्रमाण है लेकिन रैपिड्स इंटरमीडिएट प्रमाण नहीं है। –

0

मुझे पता है कि इसका उत्तर दिया गया है, लेकिन अगर किसी को भी इस समस्या का सामना करना पड़ता है तो मैंने सोचा कि मैं जो कुछ याद करता हूं उसे साझा करूंगा क्योंकि मैंने हाल ही में एक ही सिरदर्द के माध्यम से जाना है, लेकिन थोड़ा अलग वास्तुकला है।

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

इससे मेरे लिए समस्या ठीक हुई।