azure - 如何使用 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来做
解决方案
这里有一个 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 。
推荐阅读
- android - 在 Kotlin 主类中显示 onBindViewHolder 值
- python - 如何从数据框创建列表?
- python - 如何可视化keras中的预测类?
- arrays - 从 angularJS 将数组发布到 mvc 控制器列表中
- jquery - 剑道块上传不分割上传的文件
- javascript - 从 Google Callback API 增加图像的大小
- azure - Azure AD 删除了关联的 vnet
- android - 在应用程序上构建失败:preDebugBuild(Android Studio)
- java - 创建 Apache POI 实例时代码停止工作且没有任何错误
- android - Android:当我们点击推送通知时,如何在登录活动/身份验证后打开活动