हमारे आंतरिक नेटवर्क पर, हम एक स्व-हस्ताक्षरित सीए प्रमाणपत्र का उपयोग करते हैं। इसने आईओएस 10 के माध्यम से सफारी और हमारे आईओएस उत्पाद दोनों में वर्षों से ठीक काम किया है। हम बस किसी भी नए डिवाइस या सिम्युलेटर पर सीए प्रमाणपत्र स्थापित करते हैं और सब कुछ एटीएस के साथ भी काम करता है। यह प्रत्येक सर्वर पर व्यक्तिगत रूप से विश्वास किए बिना हमारे सभी आंतरिक परीक्षण सर्वर तक पहुंच की अनुमति देता है।आईओएस 11 स्थापित प्रमाणपत्र स्वचालित रूप से विश्वसनीय नहीं हैं (स्वयं हस्ताक्षरित)
आईओएस 11 से शुरू होने वाला स्थापित सीए प्रमाणपत्र अब सफारी या हमारे ऐप को किसी भी सर्वर के लिए प्रमाण पत्र पर भरोसा करने की अनुमति नहीं देता है। हम प्राप्त CFNETWORK_DIAGNOSTICS
साथ निम्नलिखित प्रासंगिक विवरण हमारे ऐप्लिकेशन के लिए सक्षम होना चाहिए:
त्रुटि डोमेन = kCFErrorDomainCFNetwork कोड = -1200
_kCFNetworkCFStreamSSLErrorOriginalValue = -9802
_kCFStreamErrorDomainKey =
_kCFStreamErrorCodeKey = - 9802
NSLocalizedDescription = एक एसएसएल त्रुटि आई है और सेवा के लिए एक सुरक्षित कनेक्शन है आर नहीं बनाया जा सकता है।
NSLocalizedRecoverySuggestion = क्या आप सर्वर से कनेक्ट करना चाहते हैं?
मैंने इस मुद्दे को हल करने की कोशिश करने में काफी समय बिताया, स्टैक ओवरफ्लो और बाकी के वेब को खराब कर दिया। हालांकि हम अपने ऐप में AFNetworking का उपयोग करते हैं, लेकिन यह अप्रासंगिक प्रतीत होता है, क्योंकि सफारी अब इन सर्वरों को सीए के माध्यम से भरोसा नहीं करती है। NSAllowsArbitraryLoads
के माध्यम से एटीएस को अक्षम करने से सर्वर तक पहुंच की अनुमति मिलती है, लेकिन जाहिर है कि कोई समाधान नहीं है।
हमारे -URLSession:didReceiveChallenge:completionHandler
कोड में कोई बदलाव नहीं किए गए हैं, और हमारे पास challenge.protectionSpace.serverTrust
के माध्यम से चुनौती प्रतिक्रिया के कार्यान्वयन के लिए उचित (वर्षों तक काम किया गया है)।
मैंने सीए और सर्वर प्रमाण पत्र दोनों का पुनर्मूल्यांकन और परीक्षण किया है, जिस तरह से मैं सोच सकता हूं, और वे आईओएस 11 को छोड़कर हर जगह काम करते हैं। आईओएस 11 के लिए एटीएस में क्या बदलाव हो सकता है जो इस मुद्दे का कारण बन सकता है?
हमारे क्यूए टीम की रिपोर्ट है कि किसी भी एप्पल डिवाइस iOS 11 के लिए अद्यतन अब किसी भी आंतरिक https साइटों का उपयोग करने की Safari या Chrome का उपयोग कर सकते हैं। स्वयं हस्ताक्षरित प्रमाण पत्र स्वीकार करने का सामान्य तरीका जो वर्षों से काम करता है और अपग्रेड किए गए उपकरणों के साथ काम करना जारी रखता है अब काम नहीं करता है। ऐसा लगता है कि बहुत से लोगों को एक ही समस्या है https://twitter.com/jfsiman/status/910269395959795712 – rob