【发布时间】:2013-11-25 15:45:54
【问题描述】:
我使用的是 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
}];
【问题讨论】:
-
什么证书?
-
这是一个自签名的 SSL 证书
-
那是你的问题。 iOS 对证书认证非常挑剔。您需要来自 CA 的完全合法的证书(您可以免费试用)。
-
您可以在 StartSSL.com 获得完全免费的。通常,只要您正确安装了证书服务器端,您甚至不需要 Xcode 项目中的 crt 文件。
标签: ios apache ssl afnetworking-2