当我们在 ios 版本 12.1.1 上使用 wss 协议连接到 AWS IoT 时,我们能够成功连接到 IoT,但立即我们可以看到 IoT 触发 onError 事件,然后连接关闭。它尝试再次重新连接,但没有任何运气。我们从 IoT 得到的错误是“{IsTrusted : true}”。
我们不使用任何证书,仅使用配置文件访问密钥和秘密密钥。
相同的版本能够在 ios 12.0.1、12.1 上正确连接
IOS版本:12.1.1(非工作版本)
AWS物联网开发工具包:2.0.0
iOS 12.1.1 引入了 Apple 新的证书透明度政策。来自苹果的发行说明:
iOS 12.1.1 要求 2018 年 10 月 15 日之后颁发的公众信任的传输层安全 (TLS) 服务器身份验证证书符合证书透明度政策,才能被评估为在 Apple 平台上受信任。
这项政策正在成为一项广泛的标准,谷歌已经在其 Chrome 浏览器中强制执行。 Amazon 知道这一点即将到来,为了响应这些新政策,发布了 MQTT 后端 (AWS IoT) 的更新,以在新端点上包含适当的认证。看https://aws.amazon.com/blogs/iot/aws-iot-core-ats-endpoints/ https://aws.amazon.com/blogs/iot/aws-iot-core-ats-endpoints/:
您必须为您账户中的每个区域明确请求 Amazon Trust Services 终端节点。您拥有的任何现有客户端点很可能都是 VeriSign 端点。如果您的终端节点在第一个子域末尾有“-ats”,则它是 Amazon Trust Services 终端节点。例如,“asdfasdf-ats.iot.us-east-2.amazonaws.com”是 ATS 端点。
简而言之,对于我的 iOS 应用程序,我们使用 AWS 提供的 MQTT 端点asdfasdf.iot.us-east-2.amazonaws.com
(只是一个例子),没有-ats
。我将端点更新为asdfasdf-ats.iot.us-east-2.amazonaws.com
我们能够完成 SSL 握手。
我希望这对您的问题有所帮助!祝你好运!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)