【问题标题】:iOS NSURLConnection/CFURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)iOS NSURLConnection/CFURLConnection HTTP 加载失败 (kCFStreamErrorDomainSSL, -9813)
【发布时间】:2014-11-11 20:45:20
【问题描述】:

每当我尝试向我们的服务器发出请求时,我都会收到此错误。在我们设置 SSL 之前它工作正常,而不是一切都搞砸了..这是我的代码:

  // Setup URL POST Request..
NSString* code4ArmourUrl = [NSString stringWithFormat:@"https://api.code4armour.com/index.php/user/login?"];

NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:code4ArmourUrl ]];
[request setHTTPMethod:@"POST"];
[request addValue:@"00000000000000000000000000000000" forHTTPHeaderField:@"X-api-key"];

NSString* postString = [NSString stringWithFormat:@"email=%@&password=%@",emailString,passwordString];
postString = [postString stringByReplacingOccurrencesOfString:@"+" withString:@"%2b"];

[request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];


// Make URL POST Request..
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError* connectionError) {

这不起作用的任何原因..我相信这是 SSL 的一个问题,但我不知道如何解决这个问题而不做一些苹果最终不会接受 App Store 的黑客行为?

任何帮助将不胜感激!谢谢。

【问题讨论】:

  • 您是否能够在 Mac 上使用 cURL 成功发送请求?你确定服务器工作正常吗?您是否缺少定义身份验证数据的标头?
  • 在我的 Mac 上使用 cURL 没有问题。这里发生了奇怪的事情!帮助!
  • 看起来在 cURL 中它没有验证证书..这是我的问题吗?如果是这样,我该如何解决这个问题?

标签: ios xcode ssl nsurlconnection nsurlrequest


【解决方案1】:

您的服务器设置不正确。虽然它可能具有正确签名的证书,但它缺少通向受信任根的链证书。请参阅SSLLabs analysis 报告的有关附加证书和证书路径的问题。

如何配置这些缺少的中间证书取决于您的服务器。 有关更多信息,请参阅Godaddy support site

【讨论】:

  • 谢谢兄弟,帮我们定位问题。
  • 嘿@Steffen,你似乎对这件事非常了解......当你去 SSLLabs 分析时,你有没有看到任何可能导致我的 NSURLConnection 这样做的东西?
  • @MikeSimz:看看我提到的部分,你会在认证路径中看到“链问题 - 不完整”和“额外下载”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-06
  • 1970-01-01
  • 2014-01-27
  • 2016-04-24
  • 2016-10-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多