Ошибка SSL возникает в обратном вызове задачи данных сеанса URL только на определенных устройствах - PullRequest
3 голосов
/ 22 января 2020

Для некоторых пользователей наше приложение выдает NSError при попытке вызвать API защищенного сервера с помощью задачи данных URLSession. Ниже подробно об ошибке:

error-domain: NSURLErrorDomain
nserror-code: -1202

NSErrorPeerCertificateChainKey: ( "<cert(0x10a086200) s: wifisignon.shaw.ca i: DigiCert SHA2 Secure Server CA>", "<cert(0x10a04f600) s: DigiCert SHA2 Secure Server CA i: DigiCert Global Root CA>" )

NSLocalizedDescription: The certificate for this server is invalid. You might be connecting to a server that is pretending to be “abc.xyz.net” which could put your confidential information at risk.

NSUnderlyingError: Error Domain=kCFErrorDomainCFNetwork Code=-1202 "(null)" UserInfo={_kCFStreamPropertySSLClientCertificateState=0, kCFStreamPropertySSLPeerTrust=<SecTrustRef: 0x282498240>, _kCFNetworkCFStreamSSLErrorOriginalValue=-9843, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9843, kCFStreamPropertySSLPeerCertificates=( "<cert(0x10a086200) s: wifisignon.shaw.ca i: DigiCert SHA2 Secure Server CA>", "<cert(0x10a04f600) s: DigiCert SHA2 Secure Server CA i: DigiCert Global Root CA>" )}

Мы используем URLSession.shared.dataTask для этого вызова GET API. Проблема в том, что эта ошибка возникает только на нескольких пользовательских устройствах (300 пользователей из 5000). Поскольку мы не можем воспроизвести проблему на наших устройствах, ее сложно отладить и найти правильное решение. Если это проблема с сертификатом сервера, то почему она не возникает на всех устройствах с одинаковой моделью и версией ОС?

1 Ответ

1 голос
/ 23 января 2020

Вы можете использовать объект URLSession с конфигурацией делегировать вместо использования объекта URLSession.shared. Затем выполните ручное доверие. Вы можете найти руководство здесь https://developer.apple.com/documentation/foundation/url_loading_system/handling_an_authentication_challenge/performing_manual_server_trust_authentication

...