如何使用X.509证书对设备(R-Pi说要连接到Azure IoT中心)进行身份验证

时间:2019-09-25 16:52:30

标签: azure authentication openssl x509 azure-iot-hub

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

现在要了解IoT中心的安全性,我正在尝试完全复制上述功能(将临时读取发送到IoT中心),但这一次使用X.509身份验证方法。

到目前为止,我已经跟踪了此链接并生成了证书,并将其上传到了Azure物联网中心并进行了验证 OPENSSL - How to generate a proof of possesion for a X509 certificate?

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

我不知道如何使用证书授权/认证设备。

我觉得我应该将证书复制到我的树莓派上,并以某种方式更改我用来向IoT中心发送临时数据以暗示该设备已获得证书的IoT中心的代码(有效的一个) )

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

1 个答案:

答案 0 :(得分:0)

此处https://github.com/Azure/azure-iot-sdk-python-preview/blob/master/azure-iot-device/samples/advanced-hub-scenarios/send_message_x509.py

有一个Python X.509身份验证示例。

这正在使用替换的Python SDK,该SDK仍在预览中,但仍应能正常工作。

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