【问题标题】:Azure IoT Edge Module certificate handlingAzure IoT Edge 模块证书处理
【发布时间】:2020-03-13 03:01:18
【问题描述】:

我正在部署边缘模块以进行协议转换并使用证书来保护通信。

证书当前放置在模块容器中,当证书更改时,需要重新构建和重新部署模块。

我正在寻找更好的解决方案,例如 azure key vault,以从中提取证书并避免重建/重新部署过程。

人们是否知道这样的选项和实施细节?

【问题讨论】:

  • 目前没有内置任何内容,但您当然可以自行实现 - 假设您的模块在启动时可以访问 KeyVault。
  • 您好 Kieran,您在寻找服务器证书还是客户端证书?
  • 嗨 Mike,我们正在边缘模块中实现服务器证书,将来自叶设备的 https 转换为上游到 IoT 中心的 mqtt。

标签: azure-iot-edge


【解决方案1】:

IoT Edge 守护程序有一个 API,用于获取链接到守护程序 config.yaml 中配置的 CA 证书的服务器证书。它将配置的主机名字段设置为服务器证书的 CN 字段。

这是 Edge Hub 用来为其 TLS 获取证书的 API。

不幸的是,没有很好的客户端库可以与这个 API 交互。但是,这是一个已发布的 Swagger 文件,它定义了可用于以您选择的语言生成客户端的 API。

招摇定义:https://github.com/Azure/iotedge/blob/master/edgelet/api/workloadVersion_2019_01_30.yaml#L177

Edge Hub 实际上使用这个 swagger 定义来生成一个 C# 客户端来接收其证书。该代码位于 IoT Edge 代码库的 utils 程序集中。 https://github.com/Azure/iotedge/tree/master/edge-util/src/Microsoft.Azure.Devices.Edge.Util/edged(尚未为此创建 nuget 包,但稍作工作,您应该能够使用此 API)。

Edge Hub 在此处使用此代码:https://github.com/Azure/iotedge/blob/master/edge-hub/src/Microsoft.Azure.Devices.Edge.Hub.Service/CertificateRenewal.cs

【讨论】:

  • 感谢您提供信息,我们的协议转换器是用 node.js 编写的,我们需要检查示例并计划实施和测试活动。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多