我已经使用 node.js 和 express 创建了一个 REST API。我现在正在尝试使用 Alamofire 3/https/SSL/TLS 通过安全连接连接到后端。我有一个 CA 签名证书,在带有“https”npm 模块的服务器上安装了一个 2048 位 key 。服务器在 xcode 中返回的错误如下: 1
当我评估我的 SSLLabs 时,它说证书已签名并且 TLS 1.2/1.1 全部可用等,如下所示。然而有趣的是,在它模拟请求的位置下,iOS 9 (ATS) 的请求记录 - 失败并显示“服务器关闭连接”,如下图所示。
TLS 连接成功完成 2
iOS 9 模拟请求失败[3]
当我使用命令时:
nscurl --ats-diagnostics --verbose
除默认 ATS 安全连接和所有三个 TLS 异常外,一切都通过了,如下所示:
ATS 默认安全连接失败[4]
3 个 TLS 异常失败[5]
据我所知,我不确定还能尝试什么我满足 ATS 的要求:
- TLS v1.2
- 前向保密(我不确定如何测试)
- 至少一个 2048 位的 key -
当我在日志文件中打开 CFNetworking 日志时,它指向 CFNetwork/CFNetworkErrors.h 中的错误代码 -1200,错误原因为“安全连接因未知原因失败”。
我不知道下一步该做什么,谢谢。抱歉,它只允许我发布 2 个链接,所以我不得不删除一些图片。
最佳答案
回答 - 我在其他服务器 0.12 上安装了旧版本的 Node.JS。更新到 v6,现在握手词很棒
关于iOS 到 Node.js 后端 SSL 握手失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40532477/