iOS 到 Node.js 后端 SSL 握手失败

标签 ios node.js swift ssl tls1.2

我已经使用 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/

相关文章:

ios - 当它已经可见时关闭键盘

ios - 如何在 swift 的 segue 之后传递按钮标签

ios - 布伦特里 iOS 集成

ios - Swift - 如何在移动到另一个场景时从场景中删除滑动手势?

swift - 将变量值传递给不同的类 - Swift

ios - 仅限生产版本的 EXC_BREAKPOINT (SIGTRAP)

ios - 如何在 ScrollView 中获取当前图像标签?

Node.js 管理与 DB2 数据库的通信

node.js如何在中间件中从redis数据库中获取数据

node.js - Firebase 函数不使用 express.js 和 EJS View 引擎提供静态文件