2017-07-06 7 views
18

हमारे आंतरिक नेटवर्क पर, हम एक स्व-हस्ताक्षरित सीए प्रमाणपत्र का उपयोग करते हैं। इसने आईओएस 10 के माध्यम से सफारी और हमारे आईओएस उत्पाद दोनों में वर्षों से ठीक काम किया है। हम बस किसी भी नए डिवाइस या सिम्युलेटर पर सीए प्रमाणपत्र स्थापित करते हैं और सब कुछ एटीएस के साथ भी काम करता है। यह प्रत्येक सर्वर पर व्यक्तिगत रूप से विश्वास किए बिना हमारे सभी आंतरिक परीक्षण सर्वर तक पहुंच की अनुमति देता है।आईओएस 11 स्थापित प्रमाणपत्र स्वचालित रूप से विश्वसनीय नहीं हैं (स्वयं हस्ताक्षरित)

आईओएस 11 से शुरू होने वाला स्थापित सीए प्रमाणपत्र अब सफारी या हमारे ऐप को किसी भी सर्वर के लिए प्रमाण पत्र पर भरोसा करने की अनुमति नहीं देता है। हम प्राप्त CFNETWORK_DIAGNOSTICS साथ निम्नलिखित प्रासंगिक विवरण हमारे ऐप्लिकेशन के लिए सक्षम होना चाहिए:

त्रुटि डोमेन = kCFErrorDomainCFNetwork कोड = -1200
_kCFNetworkCFStreamSSLErrorOriginalValue = -9802
_kCFStreamErrorDomainKey =
_kCFStreamErrorCodeKey = - 9802
NSLocalizedDescription = एक एसएसएल त्रुटि आई है और सेवा के लिए एक सुरक्षित कनेक्शन है आर नहीं बनाया जा सकता है।
NSLocalizedRecoverySuggestion = क्या आप सर्वर से कनेक्ट करना चाहते हैं?

मैंने इस मुद्दे को हल करने की कोशिश करने में काफी समय बिताया, स्टैक ओवरफ्लो और बाकी के वेब को खराब कर दिया। हालांकि हम अपने ऐप में AFNetworking का उपयोग करते हैं, लेकिन यह अप्रासंगिक प्रतीत होता है, क्योंकि सफारी अब इन सर्वरों को सीए के माध्यम से भरोसा नहीं करती है। NSAllowsArbitraryLoads के माध्यम से एटीएस को अक्षम करने से सर्वर तक पहुंच की अनुमति मिलती है, लेकिन जाहिर है कि कोई समाधान नहीं है।

हमारे -URLSession:didReceiveChallenge:completionHandler कोड में कोई बदलाव नहीं किए गए हैं, और हमारे पास challenge.protectionSpace.serverTrust के माध्यम से चुनौती प्रतिक्रिया के कार्यान्वयन के लिए उचित (वर्षों तक काम किया गया है)।

मैंने सीए और सर्वर प्रमाण पत्र दोनों का पुनर्मूल्यांकन और परीक्षण किया है, जिस तरह से मैं सोच सकता हूं, और वे आईओएस 11 को छोड़कर हर जगह काम करते हैं। आईओएस 11 के लिए एटीएस में क्या बदलाव हो सकता है जो इस मुद्दे का कारण बन सकता है?

+0

हमारे क्यूए टीम की रिपोर्ट है कि किसी भी एप्पल डिवाइस iOS 11 के लिए अद्यतन अब किसी भी आंतरिक https साइटों का उपयोग करने की Safari या Chrome का उपयोग कर सकते हैं। स्वयं हस्ताक्षरित प्रमाण पत्र स्वीकार करने का सामान्य तरीका जो वर्षों से काम करता है और अपग्रेड किए गए उपकरणों के साथ काम करना जारी रखता है अब काम नहीं करता है। ऐसा लगता है कि बहुत से लोगों को एक ही समस्या है https://twitter.com/jfsiman/status/910269395959795712 – rob

उत्तर

18

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

enter image description here

मैं सवाल रद्द बहस है, लेकिन मैंने सोचा कि यह प्रासंगिक कोड के कुछ है और लॉग विवरण किसी की तलाश में हो सकता है के लिए उपयोगी हो सकता है। साथ ही, मैंने आईओएस 11 तक इस मुद्दे का कभी सामना नहीं किया। मैं भी वापस चला गया और पुष्टि की कि यह स्वचालित रूप से आईओएस 10 के माध्यम से काम करता है।

मुझे पहले कभी भी सेटिंग पैनल को स्पर्श करने की आवश्यकता नहीं है, क्योंकि किसी भी स्थापित प्रमाणपत्र स्वचालित रूप से विश्वसनीय थे। हो सकता है कि यह आईओएस 11 जहाजों के समय बदल जाएगा, लेकिन मुझे शक है। उम्मीद है कि इससे किसी को बर्बाद करने में मदद मिलेगी।

यदि कोई जानता है कि यह आईओएस के विभिन्न संस्करणों पर कुछ लोगों के लिए अलग क्यों व्यवहार करता है, तो मुझे टिप्पणियों में जानना अच्छा लगेगा।

+3

हाय वहाँ - दुर्भाग्य से मेरा प्रमाणपत्र प्रमाणपत्र ट्रस्ट सेटिंग्स में दिखाई नहीं दे रहा है - क्या आपके पास इसके लिए कोई सुझाव है? – user3601148

+1

यदि आपका प्रमाणपत्र अवरुद्ध प्रकार है तो आपका प्रमाणपत्र प्रमाणपत्र ट्रस्ट सेटिंग्स में दिखाई नहीं दे रहा है। – Stoull

+2

अच्छा लगता है - यह नोट करना कि आईओएस 10.3 के बाद से यह मामला रहा है। यहां सेब से प्रासंगिक समर्थन प्रविष्टि है: https://support.apple.com/en-au/HT204477 – F3CP

1

यह मेरे आईफोन पर आईओएस 11 को छोड़ने के बाद भी मेरे साथ हुआ है। जब मैं कॉर्पोरेट नेटवर्क से कनेक्ट करने का प्रयास करता हूं तो यह कॉर्पोरेट प्रमाण लाता है और कहता है कि यह विश्वसनीय नहीं है। मैं 'ट्रस्ट' बटन दबाता हूं और कनेक्शन विफल रहता है और प्रमाण विश्वसनीय कॉर्ट सूची में प्रकट नहीं होता है।

1

ऐप्पल हाथों की तीन श्रेणियों के प्रमाण पत्र: Trusted, Always Ask और Blocked। यदि आपके प्रमाणपत्र का प्रकार Blocked और Always Ask सूची पर है तो आपको समस्या का सामना करना पड़ेगा। सफारी पर यह दिखाने के पसंद: enter image description here

और तुम पर सेटिंग Always Ask प्रमाण पत्र> सामान्य> के प्रकार पा सकते हैं के बारे में> प्रमाणपत्र विश्वास सेट

वहाँ List of available trusted root certificates in iOS 11

Blocking Trust for WoSign CA Free SSL Certificate G2

+0

सेटिंग्स में कोई विकल्प नहीं है जो मुझे हमेशा प्रमाणपत्रों पर भरोसा करने देता है? – aleclarson

+0

आईओएस 11 में अपना आईफोन 6 अपडेट करने के बाद से, मुझे इस मुद्दे का सामना करना पड़ रहा है। प्रमाण पत्र गोदाडी द्वारा प्रदान किया जाता है (मेरा कोई नियंत्रण नहीं है)। वाईफाई नेटवर्क पर जाने का एकमात्र तरीका नेटवर्क को पहले भूलना है, फिर क्रेडेंशियल्स दर्ज करना है, फिर प्रमाणपत्र पर भरोसा करें। प्रमाण पत्र प्रमाणपत्र ट्रस्ट सेटिंग्स में दिखाई नहीं देता है और मुझे एक जोड़ने का कोई तरीका नहीं दिखता है। अगली बार जब मैं नेटवर्क पर हस्ताक्षर करता हूं, अगर मैं पहले नेटवर्क को नहीं भूलता, तो पहले मुझे प्रमाण पत्र पर भरोसा करने के लिए प्रेरित करेगा, फिर क्रेडेंशियल्स के लिए पूछें, फिर प्रमाण पत्र पर भरोसा करने के लिए फिर से पूछें लेकिन त्रुटि तब लॉगिन अमान्य हो जाती है। – rockhammer

3

अनुशंसित समाधान है एक स्व-हस्ताक्षरित प्रमाणपत्र (रूट) को स्थापित और भरोसा करना है। मान लें कि आपने अपना स्वयं का सीए बनाया है और प्रमाणित पदानुक्रम सही है, आपको सर्वर ट्रस्ट मूल्यांकन को बदलने की आवश्यकता नहीं है। यह अनुशंसा की जाती है क्योंकि इसे कोड में किसी भी बदलाव की आवश्यकता नहीं होती है।

  1. सीए और प्रमाणपत्र उत्पन्न (आप openssl उपयोग कर सकते हैं:। Generating CA and self-signed certificates
  2. स्थापित रूट प्रमाणपत्र (* .cer फ़ाइल) उपकरण पर - आप सफारी करके भी खोल सकते हैं और यह सेटिंग पर पहुंच जाना चाहिए
  3. जब प्रमाणित स्थापित किया गया है, MattP जवाब में के रूप में प्रमाणपत्र विश्वास सेटिंग (सेटिंग> सामान्य> के बारे में> प्रमाणपत्र विश्वसनीय सेटिंग) पर जाएं।

यदि यह संभव तो आप सर्वर विश्वास मूल्यांकन को बदलने की जरूरत नहीं है।

इस दस्तावेज़ में

और जानकारी: Technical Q&A QA1948 HTTPS and Test Servers

+0

मुझे # 3 के बारे में पता नहीं था। आपको बहुत - बहुत धन्यवाद! मैंने इसे लंबे समय तक देखा था जितना मुझे पसंद आया था। – adrum

+0

# 3 चाल चल रही थी। धन्यवाद! –

+0

धन्यवाद! मैंने काम करने का प्रयास करने में कुछ घंटों बिताए, क्यों मेरा स्वयं का सीए हस्ताक्षरित सर्वर प्रमाण पत्र केवल आईओएस पर अविश्वसनीय था। प्रमाण के साथ कुछ भी गलत नहीं है। यह ऊपर # 3 था। मुझे आश्चर्य है कि ट्रस्ट सेटिंग आईओएस सेटिंग्स के सीए प्रोफाइल क्षेत्र के साथ क्यों नहीं है। –

संबंधित मुद्दे