【发布时间】:2015-11-19 03:02:31
【问题描述】:
在 iOS 9 中,我正在使用基本的 NSURLConnection 请求 url https://s3.amazonaws.com/furniture.retailcatalog.us/products/2061/6262u9665.jpg。
NSOperationQueue *completionQueue = [NSOperationQueue mainQueue];
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
self.mURLSession = [NSURLSession sessionWithConfiguration:configuration delegate:nil delegateQueue:completionQueue];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"https://s3.amazonaws.com/furniture.retailcatalog.us/products/2061/6262u9665.jpg"]];
NSURLSessionDataTask *dataTask = [self.mURLSession dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSLog(@"%@",error);
}];
[dataTask resume];
但出现此错误
Error Domain=NSURLErrorDomain Code=-1200 “发生 SSL 错误,无法与服务器建立安全连接。” UserInfo={NSLocalizedDescription=发生 SSL 错误,无法与服务器建立安全连接。, NSLocalizedRecoverySuggestion=您是否仍要连接到服务器?, _kCFStreamErrorDomainKey=3, NSUnderlyingError=0x7c1075e0 {Error Domain=kCFErrorDomainCFNetwork 代码=- 1200 "(null)" UserInfo={_kCFStreamPropertySSLClientCertificateState=0, _kCFNetworkCFStreamSSLErrorOriginalValue=-9802, _kCFStreamErrorCodeKey=-9802, _kCFStreamErrorDomainKey=3, kCFStreamPropertySSLPeerTrust=, kCFStreamPropertySSLPeerCertificates={type = immutable, count = 3, values = ( 0: 1: 2: )}}}, _kCFStreamErrorCodeKey=-9802, NSErrorFailingURLStringKey=https://s3.amazonaws.com/furniture.retailcatalog.us/products/2061/6262u9665.jpg, NSErrorPeerCertificateChainKey={type = immutable, count = 3, values = ( 0: 1: 2: )}, NSErrorClientCertificateStateKey=0, NSURLErrorFailingURLPeerTrustErrorKey=, NSErrorFailingURLKey=https://s3.amazonaws.com/furniture.retailcatalog.us/products/2061/6262u9665.jpg}
即使这是 https 连接,为什么我会收到这个奇怪的错误。谁能告诉我。
【问题讨论】:
-
我对这个问题不太了解,但我相信在 iOS 9 上仅使用 HTTPS 是不够的——您的连接还需要至少使用 TLS 1.2。您可以四处搜索并找到一项服务,该服务会告诉您是否为此服务器启用了该服务。这就是我前段时间看到这个错误的原因。
标签: objective-c iphone amazon-s3 https ios9