你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

将 IoT 中心资源迁移到新的 TLS 证书根

Azure IoT 中心和设备预配服务 (DPS) 使用 Baltimore CyberTrust Root 颁发的 TLS 证书,该证书将于 2025 年到期。 从 2023 年 2 月开始,全球 Azure 云中的所有 IoT 中心开始迁移到由 DigiCert Global Root G2 颁发的新 TLS 证书。

TLS 证书迁移对 IoT 中心的影响包括:

  • 证书存储中没有 DigiCert Global Root G2 的任何设备都不再能够连接到 Azure。
  • IoT 中心的 IP 地址已更改。

时间线

截至 2024 年 9 月 30 日,所有 IoT 中心、IoT Central 和设备预配服务资源的迁移已完成。

所需的步骤

在迁移过程中,请执行以下步骤:

  1. 将 DigiCert Global Root G2 和 Microsoft RSA Root Certificate Authority 2017 证书添加到设备。 可以从 Azure 证书颁发机构详细信息下载所有这些证书。

    DigiCert Global Root G2 确保你的设备在迁移后可以连接。 Microsoft RSA Root Certificate Authority 2017 有助于防止将来当 DigiCert Global Root G2 意外停用时发生中断。

    有关 IoT 中心推荐的证书做法的详细信息,请参阅 TLS 支持

  2. 请确保你没有锁定任何中间证书或叶证书,并使用公共根来执行 TLS 服务器验证。

    IoT 中心和 DPS 偶尔会滚动更新其中间证书颁发机构 (CA)。 在这些情况下,如果设备显式查找中间 CA 或叶证书,设备将失去连接。 但是,使用公共根执行验证的设备将继续连接,而不管中间 CA 的任何变化。

常见问题解答

我的设备使用 SAS/X.509/TPM 身份验证。 此迁移是否影响了我的设备?

迁移 TLS 证书不会影响 IoT 中心对设备进行身份验证的方式。 此迁移会影响设备对 IoT 中心和 DPS 终结点进行身份验证的方式。

IoT 中心和 DPS 向设备展示其服务器证书,而设备针对根对该证书进行身份验证,以信任它们与终结点的连接。 设备需要在其受信任的证书存储中具有新的 DigiCert Global Root G2,以便能够在此迁移后验证并连接到 Azure。

我的设备是使用 Azure IoT SDK 连接的。 我是否需要执行任何操作才能使 SDK 持续使用新证书?

视情况而定。

  • 需要,如果使用 Java V1 设备客户端。 此客户端将 Baltimore Cybertrust Root 证书与 SDK 一起打包。 你可以更新到 Java V2,也可以手动将 DigiCert Global Root G2 证书添加到源代码。
  • 不需要,如果使用其他 Azure IoT SDK。 大多数 Azure IoT SDK 依赖于基础操作系统的证书存储来检索受信任的根,以便在 TLS 握手期间进行服务器身份验证。

我的设备连接到主权 Azure 区域。 我是否仍需要更新它们?

不需要,只有全局 Azure 云受此更改的影响。 主权云不包括在此迁移中。

我使用的是 IoT Central。 是否需要更新我的设备?

需要,IoT Central 在后端同时使用 IoT 中心和 DPS。 TLS 迁移影响了你的解决方案,你需要更新设备以保持连接。

我什么时候可以从设备中删除 Baltimore Cybertrust Root?

迁移的所有阶段现在都已完成,你可以删除 Baltimore 根证书了。 从 2024 年 9 月 30 日开始,没有 Azure IoT 资源使用 Baltimore 根证书。

疑难解答

如果遇到 IoT 中心的常规连接问题,请查看以下故障排除资源:

如果在迁移证书后监视 Azure Monitor,应查找 DeviceDisconnect 事件,然后查找 DeviceConnect 事件,如以下屏幕截图所示:

Azure Monitor 日志的屏幕截图,其中显示了 DeviceDisconnect 和 DeviceConnect 事件。

如果在迁移后设备断开连接,但没有重新连接,请尝试执行以下步骤:

  • 检查 DNS 解析和握手请求是否已完成,且没有任何错误。

  • 验证设备是否已在证书存储中同时安装了 DigiCert Global Root G2 证书和 Baltimore 证书。

  • 使用以下 Kusto 查询来标识设备的连接活动。 有关详细信息,请参阅 Kusto 查询语言 (KQL) 概述

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.DEVICES" and ResourceType == "IOTHUBS"
    | where Category == "Connections"
    | extend parsed_json = parse_json(properties_s)
    | extend SDKVersion = tostring(parsed_json.sdkVersion), DeviceId = tostring(parsed_json.deviceId), Protocol = tostring(parsed_json.protocol)
    | distinct TimeGenerated, OperationName, Level, ResultType, ResultDescription, DeviceId, Protocol, SDKVersion
    
  • 使用 Azure 门户 IoT 中心的“指标”选项卡跟踪设备重新连接过程。 理想情况下,在完成此迁移之前和之后,设备不会有任何变化。 建议监视的一个指标是“连接的设备”,但你可以使用主动监视的任何图表。