首页 > 解决方案 > 如何使用 X.509 证书对设备进行身份验证(R-Pi 说要连接到 Azure IoT Hub)

问题描述

因此,首先我将 DHT11(温度传感器)连接到我的 RPi(Raspberry Pi)然后,在我的天蓝色门户中,我创建了一个 IOT 集线器并在集线器中注册了一个虚拟设备身份,同时创建了这个(对于第一次)我选择了 Azure IoT Hub 教程文档中提到的对称密钥选项,然后我编写了一个要在我的 RPI 上执行的 python 脚本,它捕获临时读数并将其发送到我的 iot 中心。

现在要了解物联网集线器的安全方面,我正在尝试完全复制上述功能(将临时读取发送到物联网集线器),但这次使用 X.509 身份验证方法。

到目前为止,我已经关注此链接并生成了一个证书并将其上传到 azure iot hub 并对其进行了验证 OPENSSL - 如何为 X509 证书生成所有权证明?

现在,当我尝试将传感器数据(DHT11)发送到在我的 iot 集线器中注册的 iot 设备时,它显示设备未授权

我不明白如何使用证书授权/验证设备。

我觉得我应该将证书复制到我的树莓派上,并以某种方式更改我用来将临时数据发送到物联网集线器的代码,以使物联网集线器知道该设备已经获得证书(有效的)

我不知道该怎么做……有人可以帮我吗……我想用python来做

标签: azureauthenticationopensslx509azure-iot-hub

解决方案


这里有一个 Python X.509 身份验证示例https://github.com/Azure/azure-iot-sdk-python-preview/blob/master/azure-iot-device/samples/advanced-hub-scenarios/send_message_x509。 py

这是使用仍在预览中的替代 Python SDK,但它应该仍然可以工作。

您将需要创建证书和私钥,并使用您在 IoT 中心验证的证书对其进行签名。此处解释了此过程:https ://github.com/Azure/azure-iot-sdk-c/blob/master/tools/CACertificates/CACertificateOverview.md 。


推荐阅读