我正在尝试使用此GitHub存储库(https://github.com/Azure-Samples/azure-iot-samples-node/tree/master/iot-hub/Tutorials/RaspberryPiApp)中的代码将数据从我的Raspberry Pi发送到Azure IoT Hub。但是,我希望使用x.509证书而不是Azure IoT Hub设备连接字符串。我认为我必须修改index.js文件,但我不确定要更改什么,请帮助。
我正在尝试使用此GitHub存储库(https://github.com/Azure-Samples/azure-iot-samples-node/tree/master/iot-hub/Tutorials/RaspberryPiApp)中的代码将数据从我的Raspberry Pi发送到Azure IoT Hub。但是,我希望使用x.509证书而不是Azure IoT Hub设备连接字符串。我认为我必须修改index.js文件,但我不确定要更改什么,请帮助。
1条答案
按热度按时间xuo3flqw1#
为了在x.509身份验证中使用该代码,您需要cert.pem和key.pem文件。我已经按照文章Quickstart: Provision an X.509 certificate simulated device中概述的步骤使用脚本生成了以下证书集。
我继续执行本文中的步骤,使用上面步骤中生成的设备证书在Azure门户上配置设备。
我将为Raspberry Pi设备生成的证书复制到放置index.js文件的同一目录中。我修改了index.js文件的
initClient
函数的x509部分,如下所示,以使用证书。请注意,我在这个例子中使用了MQTT协议。当我用AMQP协议测试时,我发现了一个错误。我不确定这是否与我用来生成证书的方法有关。
如果您在生成证书时设置了密码短语,则可以将空字符串传递给参数,如下文connectionOptions声明中的
''
所示。您可以从Raspberry Pi使用以下命令运行该文件
sudo node index.js 'HostName=<YourHubName>.azure-devices.net;DeviceId=<deviceId>;x509=true'
请查找我使用证书运行文件时得到的输出。