17

我刚刚下载了最新版本的 xCode (9.0 beta (9M136h))。

但是,当我尝试在 iOS 11 模拟器中向我的服务器发出请求时(使用 NSURLConnection sendAsynchronousRequest),收到错误消息:

NSURLSession/NSURLConnection HTTP 加载失败 (kCFStreamErrorDomainSSL, -9807) NSURLConnection 完成错误 - 代码 -1202

NSError 对象包含消息 - @"NSLocalizedDescription" : @"此服务器的证书无效。您可能正在连接到伪装成“***”的服务器,这可能会使您的机密信息面临风险。"

该 plist 包含:

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

所以在这种情况下这不是问题(我猜)

不用说它在 iOS 10/9/8 中运行

有什么建议么?

提前致谢!

4

3 回答 3

6

您需要允许您的应用程序运行 HTTP(无 S)连接。默认情况下,Apple 只允许 HTTPS:

  1. 转到您的 info.plist

    这里

  2. 然后按其中任何一个上的加号图标

  3. 搜索“应用程序传输安全设置” 这里

  4. 单击左侧的小箭头并找到“允许任意加载”,默认设置为“否”,将其更改为“是”

于 2017-10-26T01:42:44.027 回答
1

对于在iOS 11中遇到此错误的所有人,请确保您使用的是服务器中的有效(安全)证书。

在我们的案例中,证书不够严格。

一旦我们的服务器人员集成了新的有效证书,问题就消失了。

检查证书是否安全的一种方法是通过浏览器中的有问题的链接。

因此,您可能会看到连接不安全:

在此处输入图像描述

于 2017-09-24T06:59:51.190 回答
0

由于您遇到了无效证书错误,我将根据我的个人安全实践提出以下建议。

如果您的 CA 仍处于服务条款中,请要求他们为您颁发新的有效证书。

检查您的钥匙串设置并确保没有丢失任何 CA 证书。

或者,您可以发布自己的自签名证书以进行测试,并将其添加到本地 Keychain 作为信任锚。搜索“如何创建自签名 x509 证书”将返回您可能会发现有用的信息。

于 2017-10-27T04:34:19.080 回答