使用设备代码中的X.509证书 - 虚拟IoT硬件和Raspberry Pi 在本课程的这一部分中,您将使用X.509证书将虚拟IoT设备或Raspberry Pi连接到IoT Hub。 将设备连接到IoT Hub 下一步是使用X.509证书将设备连接到IoT Hub。 任务 - 连接到IoT Hub 将密钥和证书文件复制到包含您的IoT设备代码的文件夹中。如果您通过VS Code Remote SSH在PC或Mac上创建了密钥并正在使用Raspberry Pi,则可以将文件拖放到VS Code的资源管理器中以进行复制。 打开文件 若要使用X.509证书进行连接,您需要IoT Hub的主机名以及X.509证书。
在本课程的这一部分中,您将使用X.509证书将虚拟IoT设备或Raspberry Pi连接到IoT Hub。
下一步是使用X.509证书将设备连接到IoT Hub。
将密钥和证书文件复制到包含您的IoT设备代码的文件夹中。如果您通过VS Code Remote SSH在PC或Mac上创建了密钥并正在使用Raspberry Pi,则可以将文件拖放到VS Code的资源管理器中以进行复制。
打开文件 app.py
若要使用X.509证书进行连接,您需要IoT Hub的主机名以及X.509证书。首先,通过添加以下代码来创建一个包含主机名的变量,在创建设备客户端之前:
host_name = "<host_name>"
将 <host_name> 替换为您的IoT Hub主机名(例如 `` with your IoT Hub's host name. You can get this from the HostName section in the connection_string. It will be the name of your IoT Hub, ending with .azure-devices.net)。
在这之下,声明一个包含设备ID的变量:
device_id = "soil-moisture-sensor-x509"
您需要一个 X509 class containing the X.509 files. Add X509 to the list of classes imported from the azure.iot.device 模块的实例:
from azure.iot.device import IoTHubDeviceClient, Message, MethodResponse, X509
创建一个 X509 class instance using your certificate and key files by adding this code below the host_name 声明:
x509 = X509("./soil-moisture-sensor-x509-cert.pem", "./soil-moisture-sensor-x509-key.pem")
这将使用连接字符串创建 X509 class using the soil-moisture-sensor-x509-cert.pem and soil-moisture-sensor-x509-key.pem files created earlier.
Replace the line of code that creates the device_client,包括以下内容:
device_client = IoTHubDeviceClient.create_from_x509_certificate(x509, host_name, device_id)
这将使用X.509证书而不是连接字符串进行连接。
删除带有 connection_string 变量的行。
运行您的代码。监控发送到IoT Hub的消息,并像以前一样发送直接方法请求。您会看到设备连接并发送土壤湿度读数,同时接收直接方法请求。
您可以在 code/pi 或 code/virtual-device 文件夹中找到此代码。
您的土壤湿度传感器程序现在已使用X.509证书连接到IoT Hub!
声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。