如何为Azure IoTHub模块创建X.509 CA示例证书?

时间:2020-09-25 04:07:17

标签: python x509 azure-iot-hub

我一直在按照this tutorial中的步骤创建IoT中心模块,因此我可以为我的示例设备尝试模块孪生。只要我使用SAS令牌创建模块,每个方法都可以正常工作,如本教程中所述。

但是,现在,我希望能够使用示例X.509 CA证书来创建模块。问题是,当我尝试使用以下代码创建模块时:

module_client = IoTHubModuleClient.create_from_x509_certificate(cert, HOSTNAME, DEVICE_ID, MODULE_ID)

...... cert是我使用those instructions(即./certGen.sh create_device_certificate SampleDevice4)为示例设备创建的X.509证书,出现以下错误:

ConnectOperation:完成并显示错误UnauthorizedError('Connection 拒绝:未经授权。')

我知道我的示例设备证书有效,因为我可以在此tutorial about device twins中成功使用它。因此,我假设我需要专门为该模块创建一个新的X.509证书/密钥对,而不是使用设备证书。但是我找不到如何创建它们的方法。有谁知道如何为模块而不是设备生成X.509 CA证书?

1 个答案:

答案 0 :(得分:1)

我发现可以使用以下语法生成模块X.509证书: ./certGen.sh create_device_certificate SampleDevice4\/mymodule。请注意,必须将斜杠转义,以便openssl可以正确生成证书的公用名(CN)。 据我所知,这是未记录的行为,所以我不知道该约定将来是否可以可靠地使用。我在教程中留下了反馈,询问是否是这种情况。