【发布时间】:2018-05-01 12:47:35
【问题描述】:
我在构建 POC 时遇到了这个 1200 错误,我真的不知道实际问题是什么。在您阅读本文之前,我不是在寻找变通方法,因为我已经实施了变通方法,我想正确解决此问题。
在我的应用程序中,我正在发出 @POST HTTP 请求,请求的代码很好,我发出请求,获取一些 json,解析并用它做任何事情。
在构建应用程序时,我使用 CharlesProxy 作为中间人,因此我可以看到我发出的请求(因为我的密码字段没有正确编码)。建立 POC 后,我关闭了 Charles,然后应用程序停止工作。
我在控制台中收到了这些错误日志:
error : Error Domain=NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made."
我在谷歌上搜索了一个修复程序,人们似乎建议禁用传输安全以防止苹果干扰。问题是我正在与之交互的服务器是 HTTPS 服务器,并且传输安全性没有得到重视。
我了解到这是由于 SSL 握手错误造成的,但实际上没有人提出任何修复建议。
目前,我已更改 info.plist 中的应用程序传输安全设置以允许任意加载。显然我不想在我的主应用程序中这样做,我想知道一种方法来一劳永逸地解决这个问题! (我还可以在应用程序旁边运行 charles proxy 以使一切正常运行)。
【问题讨论】:
-
ATS 非常严格,它要求服务器满足很多要求,这些要求只是“SSL”:TLS 版本、密码套件、密钥...有关详细信息,请参阅developer.apple.com/library/content/documentation/General/…。
-
@TusharSharma 所以问题是,我连接的服务器是 HTTPS,我不想禁用传输安全,因为它会在我的应用程序中引入安全漏洞。我正在寻找处理此错误的适当解决方案:/
-
在 Mac 上,使用您的 URL 运行
nscurl --ats-diagnostics <url>,它应该会指出该 URL 不符合 ATS 的内容。
标签: ios app-transport-security