iOS NSURLErrorDomain Code=-1200 “发生 SSL 错误,无法与服务器建立安全连接。”

Posted

技术标签:

【中文标题】iOS NSURLErrorDomain Code=-1200 “发生 SSL 错误,无法与服务器建立安全连接。”【英文标题】:iOS NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made." 【发布时间】:2020-11-02 16:43:40 【问题描述】:

我的应用程序从 AWS 存储桶中获取资源(通过云端访问)。 部分用户无法获取数据,原因是

NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made."

当我们使用 AWS 服务时,我假设 SSL 证书没问题,它发生在一小部分(但不够小)的用户应该说 SSL 证书没问题。

我看到的有关此问题的任何其他帖子都建议在 info.plist 文件中向App Transport Security Settings 添加一个标志,以允许不安全的连接。这不是我可以(或不想)做的事情。

感谢您的帮助:)

【问题讨论】:

【参考方案1】:

我从 Apple 开发者论坛中找到了 this solution,其中不涉及修改 App Transport Security Settings

而且您的场景中不应该需要 ATS 异常。这 我推荐的方法如下:

在您的组织内设置自定义证书颁发机构 (CA)(许多组织已经拥有此功能)。

让它为您的私人服务器颁发证书。

使用 MDM 在您的设备上安装您组织 CA 的根证书。

【讨论】:

谢谢!由于我不使用私有服务器,而是使用 AWS s3 + 云前端(带有 AWS SSL 证书),我认为这不适合我。【参考方案2】: 如果您使用的是 ***,这可能会发生。 但是,如果您使用的是 Charles Proxy 等代理工具,但尚未安装/信任 Charles Proxy 证书,也会发生这种情况。 当我在公共 wifi 网络上时,它也发生在我身上。似乎公共 wifi 是如何做某种 MITM 来添加一些广告的。我在使用 LTE 或非公共 wifi 时没有遇到同样的问题

【讨论】:

以上是关于iOS NSURLErrorDomain Code=-1200 “发生 SSL 错误,无法与服务器建立安全连接。”的主要内容,如果未能解决你的问题,请参考以下文章

iOS NSURLErrorDomain Code=-1200 “发生 SSL 错误,无法与服务器建立安全连接。”

为啥 NSURLConnection 失败,错误 Domain=NSURLErrorDomain Code=-1005 “网络连接丢失。”在 Swift iOS8 中?

Swift 3.0 Alamofire 4.0 - Domain=NSURLErrorDomain Code=-999 “取消”

随机和偶然的网络错误(NSURLErrorDomain Code=-1001 和 NSURLErrorDomain Code=-1005)

SDWebImage : NSURLErrorDomain - Code = 406

网络连接丢失。NSURLErrorDomain Code=-1005