我花了很多时间寻找答案,但仍然没有运气,所以我决定放弃并请求社区帮助:
1 我有一个使用自签名证书的开发服务器
2 是的,我确实使用了 policy.allowInvalidCertificates = YES;
3 SSL 在自定义端口 44302 上
4 我需要运行下载任务,因为请求返回数据流
这是我的代码:
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
AFSecurityPolicy *policy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];
policy.allowInvalidCertificates = YES;
manager.securityPolicy = policy;
NSURL *URL = [NSURL URLWithString:[NSString stringWithFormat:@"https://self_signed_cert.net:44302/storage/%@/action.download", _ticketId]];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
NSURLSessionDataTask *dataTask = [manager dataTaskWithRequest:request completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
if (error) {
NSLog(@"Error: %@", error);
} else {
NSLog(@"%@ %@", response, responseObject);
}
}];
[dataTask resume];
以下是错误信息:
2015-08-03 18:18:15.901 SSL_TEST[1517:23943] 错误:错误 Domain=NSURLErrorDomain Code=-1200 "发生了 SSL 错误,无法建立安全连接到服务器。" UserInfo=0x787d2f20 {NSLocalizedDescription=发生了 SSL 错误,无法建立安全连接到服务器。, NSLocalizedRecoverySuggestion=是否仍要连接服务器?, _kCFStreamErrorCodeKey=-9806, NSErrorFailingURLStringKey=https://self_signed_cert.net:44302/storage/a430f316cfe076e9850874c0edad3dcb/action.download, _kCFStreamErrorDomainKey=3, NSUnderlyingError=0x787da700 "操作无法完成。(kCFErrorDomainCFNetwork 错误 -1200。)", NSErrorFailingURLKey=https://self_signed_cert.net:44302/storage/a430f316cfe076e9850874c0edad3dcb/action.download}
感谢您的帮助!谢谢。