我正在使用 AFNetworking 2.0,并且我在 Apache 服务器上启用了证书身份验证。 我在 xcode 项目中放置了一个 .crt 文件。 每当我尝试与服务器建立 https 连接时,我都会收到以下错误:
The operation couldn't be completed. (NSURLErrorDomain error -1012.)
这是调用服务器的代码:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
[manager setSecurityPolicy:[AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate]];
[manager POST:@"https://www.example.com/" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
//success
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
//failure
}];
最佳答案
默认情况下,AFNetworking 仅针对 .cer
文件进行固定。
重命名您的证书,使其成为 .cer
而不是 .crt
,它应该可以工作。
您可以通过查看固定的证书来查看它是否正常工作:
NSLog(@"Using %d pinned certificates", [manager.securityPolicy.pinnedCertificates count]);
关于ios - 使用 SSL 证书将 iOS 应用程序与 Apache Server 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20197180/