【发布时间】:2020-01-30 21:39:53
【问题描述】:
哇,SSL 身份验证是压倒性的!
我正在使用 NodeMCU 设备 (ESP8266) 设备通过 MQTT 协议安全地连接到 Microsoft Azure IoT Hub。
Microsoft 提供了使用自签名 X.509 证书授权客户端的功能。
这里有详细解释:Using X.509 Certificates with IoT Hub
我遵循了 Microsoft Azure 给出的示例,使用 OpenSSL 生成我的自签名 X.509 证书。
我尝试使用示例 Python 脚本作为客户端测试连接,使用我的新证书,效果很好。所以我知道这个过程是成功的,因为它已经过测试和工作,我可以发布和订阅我的 IoT 中心。
为了让 NodeMCU 设备作为客户端连接到 IoT 中心,我需要加载证书以进行身份验证。 NodeMCU 提供了将单个 CA 证书(PEM 格式)加载到操作系统中的工具。
这在此处记录:NodeMCU TLS Documentation
问题是,我应该使用哪个证书?
我从 OpenSSL 输出中尝试了一些组合,但似乎都没有成功握手。在这个阶段,我正在探索和希望,并且可以从了解他们的东西的人那里获得一些意见。
令人鼓舞的消息是 NodeMCU 将证书识别为 X.509 证书,但验证失败。所以这让我相信我加载了不正确的证书......
-0x2700 MBEDTLS_ERR_X509_CERT_VERIFY_FAILED
证书验证失败,例如CRL、CA 或签名检查失败。
【问题讨论】:
标签: azure openssl certificate x509 nodemcu