Ios NSURLSession/NSURLConnection HTTP加载失败(kCFStreamErrorDomainSSL,-9813)错误并非在所有iPhone上都存在?
我的一个应用程序无法连接到其API服务器。记录的原因是NSURLSession/NSURLConnection HTTP加载失败(kCFStreamErrorDomainSSL,-9813)。到目前为止,还没有找到原因或原因,但最令人沮丧的是,这个问题出现在我的一些测试设备上。另一方面,一切都很好。我使用的是Ios NSURLSession/NSURLConnection HTTP加载失败(kCFStreamErrorDomainSSL,-9813)错误并非在所有iPhone上都存在?,ios,ssl,https,nsurlconnection,nsurlsession,Ios,Ssl,Https,Nsurlconnection,Nsurlsession,我的一个应用程序无法连接到其API服务器。记录的原因是NSURLSession/NSURLConnection HTTP加载失败(kCFStreamErrorDomainSSL,-9813)。到目前为止,还没有找到原因或原因,但最令人沮丧的是,这个问题出现在我的一些测试设备上。另一方面,一切都很好。我使用的是NSURLConnection:sendSynchronousRequest:returningResponse:error:,但经过一些重构并尝试使用NSURLSessionDataTas
NSURLConnection:sendSynchronousRequest:returningResponse:error:
,但经过一些重构并尝试使用NSURLSessionDataTask:dataTaskWithRequest:completionHandler:
,问题仍然出现。
还补充说
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential *credential))completionHandler
{
completionHandler(NSURLSessionAuthChallengeUseCredential, [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust]);
}
还是什么都没有
p、 尽管我的第一个问题与许多其他问题重复,但我主要关心的是为什么这个错误只出现在我的一个测试设备上(在设置->常规->重置之后,它也可以正常工作,但如何告诉苹果“请重置你的测试设备”?)。另一个工作非常好。Error-9813是errsslnorotcert。这意味着服务器提供的证书链无法到达受信任的根(锚)证书,这通常是由于链中缺少证书造成的 一个设备与另一个设备之间存在差异的原因可能是因为某些设备能够成功获取丢失的证书(OCSP?),因为某些设备具有其他设备上不存在的其他受信任锚证书,或者因为链中的某些证书是使用iOS 9上不再接受的密钥签名算法签名的,因此被忽略 我建议您联系您的TLS证书供应商,获取TLS链文件的新副本,更新服务器上的链文件,重新启动服务器,然后查看问题是否消失 如果这没有帮助,请使用我们可以测试的URL编辑您的问题,以及针对相关主机运行
openssl s_client-connect yourhostname:443
的结果
更多提示如下:
openssl s_client-connect yourhostname:443
的结果
更多提示如下: