【发布时间】:2015-10-30 06:02:40
【问题描述】:
我正在尝试发布到支持 TLS 1.2 的服务器 - 至少当我在浏览器中执行 GET 时,我可以验证通信使用 TLS 1.2 并且证书已由证书颁发机构验证。但是,当我尝试使用 AFNetworking iOS 9.0 (13A4305g) / Xcode 7-beta4 将我的代码发布到该服务器时,我遇到了握手失败。
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFHTTPRequestSerializer serializerWithContentType:@"application/x-www-form-urlencoded"];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
[manager POST:requestString parameters:@{ @"apiKey" : MY_API_KEY,
@"payload" : [MyParams paramsForPOSTAsJSON] }
success:^(AFHTTPRequestOperation *operation, NSDictionary *responseDict) {
...
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
myLog(@"Communication failed: %@", error);
}];
失败:
2015-08-06 15:01:08.398 MyApp[1795:394055] CFNetwork SSLHandshake failed (-9824)
2015-08-06 15:01:08.409 MyApp[1795:394055] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9824)
2015-08-06 15:01:08.412 MyApp[1795:393999] MyClass sendDataToServer Communication failed: Error Domain=NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made." ...
我错过了什么吗?我怎样才能更深入地挖掘?假设这是服务器而不是代码的问题 - 我怎么能窥探呢?
【问题讨论】:
-
这可能与 stackoverflow.com/questions/31820284/… 有关,问题在于 iOS9 不仅需要 TLS1.2,还需要特定的密码(前向保密)。
-
@SteffenUllrich 这看起来很有希望。据我所知,我访问的网站没有所有必需的密码。等我解决了这个问题,我会看看会发生什么。
标签: ios ssl afnetworking ios9