यदि आपका बैकएंड एक सुरक्षित कनेक्शन चींटी का उपयोग करता है, तो आप NSURLSession का उपयोग कर सकते हैं
CFNetwork SSLHandshake failed (-9801)
NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9801)
आपको एटीएस संस्करण और एसएसएल प्रमाणपत्र प्राप्त करने के लिए विशेष रूप से अपने सर्वर कॉन्फ़िगरेशन की जांच करने की आवश्यकता है जानकारी:
सेटिंग द्वारा केवल असुरक्षित कनेक्शन देने केNSExceptionAllowsInsecureHTTPLoads = YES
बजाय, यदि आपके सर्वर को एटीएस (या सर्वर पक्ष को ठीक करने के लिए बेहतर) के लिए न्यूनतम आवश्यकता (v1.2) को पूरा न करने की स्थिति में अनुमति देने की आवश्यकता होती है।
सिंगल सर्वर पर सिक्योरिटी कम करना
<key>NSExceptionDomains</key>
<dict>
<key>api.yourDomaine.com</key>
<dict>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.0</string>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
</dict>
सर्टिफिकेट की जांच करने के लिए और ओपन सर्वर का उपयोग करके अपने सर्वर कॉन्फ़िगरेशन को प्राप्त करने के लिए ओपनसेल क्लाइंट का उपयोग करें:
openssl s_client -connect api.yourDomaine.com:port //(you may need to specify port or to try with https://... or www.)
.. अंत में पता करें
SSL-Session:
Protocol : TLSv1
Cipher : AES256-SHA
Session-ID: //
Session-ID-ctx:
Master-Key: //
Key-Arg : None
Start Time: 1449693038
Timeout : 300 (sec)
Verify return code: 0 (ok)
ऐप ट्रांसपोर्ट सिक्योरिटी (ATS) को ट्रांसपोर्ट लेयर सिक्योरिटी (TLS) प्रोटोकॉल वर्जन 1.2 की आवश्यकता होती है।
एटीएस का उपयोग कर कनेक्ट करने के लिए आवश्यकताएँ:
ऐप ट्रांसपोर्ट सिक्योरिटी (एटीएस) का उपयोग करने के लिए एक वेब सेवा कनेक्शन के लिए आवश्यकताओं में सर्वर, कनेक्शन सिफर और प्रमाण पत्र शामिल हैं:
प्रमाणपत्र निम्न प्रकार की कुंजियों में से एक पर हस्ताक्षर किए जाने चाहिए:
सुरक्षित हैश अल्गोरिथम 2 (SHA-2) कम से कम 256 (यानी, SHA-256 या तो) की लंबाई के साथ कुंजी
एलिप्टिक-कर्व क्रिप्टोग्राफी (ईसीसी) कम से कम 256 बिट्स के आकार के साथ कुंजी
कम से कम 2048 बिट्स की लंबाई के साथ रिवरेस्ट-शमीर-एडलमैन (आरएसए) कुंजी एक अमान्य प्रमाणपत्र परिणाम में एक कठिन विफलता और कोई संबंध नहीं है।
निम्नलिखित कनेक्शन सिफर आगे गोपनीयता (एफएस) का समर्थन करते हैं और एटीएस के साथ काम करते हैं:
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
अपडेट: यह पता चलता है कि ओपनसेल केवल न्यूनतम प्रोटोकॉल संस्करण प्रोटोकॉल प्रदान करता है: TLSv1 लिंक