AWS IOT连接在IPAD OS v12.1.1上关闭

kal*_*yan 2 amazon-web-services ios iot aws-iot

当我们在ios版本12.1.1上使用wss协议连接到AWS IoT时,我们能够成功连接到IoT,但我们立即可以看到从IoT触发的onError事件然后关闭连接.它试图再次重新连接,但没有任何运气.我们从IoT得到的错误是"{IsTrusted:true}".我们没有使用任何证书,只使用配置文件访问密钥和密钥.

相同的构建能够在ios 12.0.1,12.1上正确连接

IOS版本:12.1.1(不工作版)

AWS IOT SDK:2.0.0

Reb*_*lon 6

iOS 12.1.1引入了Apple的新证书透明度政策.来自Apple的发行说明:

iOS 12.1.1要求2018年10月15日之后颁发的公开信任的传输层安全性(TLS)服务器身份验证证书符合证书透明度策略,以便在Apple平台上评估为受信任.

此政策正在成为Google已在其Chrome浏览器中强制执行的广泛标准.亚马逊知道这种情况即将到来,并且响应这些新策略,发布了对其MQTT后端(AWS IoT)的更新,以在新端点上包含适当的认证.请参阅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握手.

我希望这对您的问题有所帮助!祝好运!