Domain = NSURLErrorDomain Code 1202

时间:2016-12-19 11:41:28

标签: ios amazon-web-services ssl nsurlsession tls1.2

您好我收到以下错误:

  

错误域= NSURLErrorDomain代码= -1202 \"此服务器的证书无效。您可能正在连接到假装为“server-prod.name-cloud.com”的服务器,这可能会使您的机密信息面临风险。\" UserInfo = {NSErrorFailingURLStringKey = https://server-prod.name-cloud.com / v3 / project / session / 926B9E6BE31B /,NSLocalizedRecoverySuggestion =您是否还要连接到服务器?,_ kCFStreamErrorDomainKey = 3,NSErrorFailingURLKey = https://server-prod.name-cloud.com / v3 / project / session / 926B9E6BE31B /,_ kCFStreamErrorCodeKey = -9843,NSLocalizedDescription =此服务器的证书无效。您可能正在连接到假装为“server-prod.name-cloud.com”的服务器,这可能会使您的机密信息面临风险。}

我阅读了所有relevant docs,我们将所有要求应用于"常见失败"部分。

更多详情:

  • 仅从德国收到的错误(过去2W来自意大利的4次除外)
  • 内部无法再现
  • 最后经过大量的重试后,上传就会抛出
  • 这是在iOS 10.x.x& 9.x.x
  • 我使用2016-08 SSL Security Policies的亚马逊服务器, 所以根据apple它应该没问题

在我使用的应用程序中:

<key>NSAppTransportSecurity</key>
   <dict>
      <key>NSAllowsArbitraryLoads</key>
   <true/>
</dict>

注意 - 在生产中我总是使用HTTP,我留下了NSAllowsArbitraryLoads,因为一些离岸测试人员可以将路由切换到HTTP进行调试。

2 个答案:

答案 0 :(得分:22)

对于在本地使用服务器并且需要让iOS模拟器信任证书的开发人员。请按照以下步骤操作:

  1. 通过从Keychain导出证书来获取.cer文件。您需要有效格式的证书文件,并且最容易获得 从钥匙串中导出。

  2. 将上述.cer文件拖放到模拟器上。它应该会提示您安装“配置文件”。继续按照说明进行安装。

  3. 对于那些使用最新版本的XCode和iOS模拟器的人。你需要做最后一步。必须明确告知模拟器信任根CA.通过转到General -> About -> Certificate Trust Settings -> "Enable Full Trust for Root Certificate" for your particular certificate

  4. 来完成此操作

    希望这能为一些人带来麻烦!

答案 1 :(得分:-2)

我花了很多时间来解决此问题:

如果我们中有人遇到证书问题,请。 这是因为防病毒阻止iPhone模拟器浏览任何网站。我能够通过以下步骤解决此问题:

  1. 在Mac中卸载或关闭防病毒软件。
  2. 删除模拟器的所有内容和设置。
  3. 重新启动Mac。