Azure IoT Edge 模块证书处理
Azure IoT Edge Module certificate handling
我正在部署边缘模块进行协议转换并使用证书来保护通信。
证书当前放置在模块容器内,这将需要在证书更改时重建和重新部署模块。
我正在寻找更好的解决方案,例如 azure key vault,以从中提取证书并避免 rebuild/redeploy 过程。
人们是否知道这样的选项和实施细节?
IoT Edge 守护进程有一个 API 用于获取链接到守护进程 config.yaml 中配置的 CA 证书的服务器证书。它将配置的主机名字段设置为服务器证书的 CN 字段。
这是 Edge Hub 用来为其 TLS 获取证书的API。
不幸的是,没有很好的客户端库可以与之交互API。但是,这是一个已发布的 swagger 文件,它定义了 API,可用于以您选择的语言生成客户端。
Swagger 定义:https://github.com/Azure/iotedge/blob/master/edgelet/api/workloadVersion_2019_01_30.yaml#L177
Edge Hub 实际上使用这个 swagger 定义来生成一个 C# 客户端来接收它的证书。该代码位于 IoT Edge 代码库的实用程序程序集中。 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
我正在部署边缘模块进行协议转换并使用证书来保护通信。
证书当前放置在模块容器内,这将需要在证书更改时重建和重新部署模块。
我正在寻找更好的解决方案,例如 azure key vault,以从中提取证书并避免 rebuild/redeploy 过程。
人们是否知道这样的选项和实施细节?
IoT Edge 守护进程有一个 API 用于获取链接到守护进程 config.yaml 中配置的 CA 证书的服务器证书。它将配置的主机名字段设置为服务器证书的 CN 字段。
这是 Edge Hub 用来为其 TLS 获取证书的API。
不幸的是,没有很好的客户端库可以与之交互API。但是,这是一个已发布的 swagger 文件,它定义了 API,可用于以您选择的语言生成客户端。
Swagger 定义:https://github.com/Azure/iotedge/blob/master/edgelet/api/workloadVersion_2019_01_30.yaml#L177
Edge Hub 实际上使用这个 swagger 定义来生成一个 C# 客户端来接收它的证书。该代码位于 IoT Edge 代码库的实用程序程序集中。 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