将证书与 Azure Sphere 配合使用

本主题概述了 Azure Sphere 证书“横向”:各种 Azure Sphere 组件使用的证书类型、证书来源、存储位置、更新方式以及在必要时如何访问它们。 此外,还介绍了 Azure Sphere OS、SDK 和服务如何使证书管理更加轻松。 我们假设你基本熟悉证书颁发机构和信任链。

Azure Sphere 设备

每个 Azure Sphere 设备都依赖于受信任的根存储,该存储是 Azure Sphere OS 的一部分。 受信任的根存储包含根证书的列表,这些证书用于在设备连接进行设备身份验证和证明时验证 Azure Sphere 安全服务的身份, (DAA) 、无线 (OTA) 更新或错误报告。 这些证书随 OS 一起提供。

每日证明成功时,设备会收到两个证书:更新证书和客户证书。 更新证书使设备能够连接到 Azure Sphere 更新服务以获取软件更新并上传错误报告;应用程序或命令行无法访问它。 应用程序可以使用客户证书(有时称为 DAA 证书)连接到使用传输层安全性 (TLS) 的第三方服务,例如 wolfSSL。 此证书的有效期为 24 小时。 应用程序可以通过调用 DeviceAuth_GetCertificatePath 函数以编程方式检索它。

连接到基于 Azure 的服务(如 Azure IoT 中心、Azure IoT Central 和 Azure IoT Edge)的设备必须提供其 Azure Sphere 目录 CA 证书才能对其 Azure Sphere 目录进行身份验证。 CLI 中的 az sphere ca-certificate download 命令返回用于此类用途的目录 CA 证书。

EAP-TLS 网络连接

连接到 EAP-TLS 网络的设备需要证书才能使用网络的 RADIUS 服务器进行身份验证。 若要以客户端身份进行身份验证,设备必须将客户端证书传递给 RADIUS。 若要执行相互身份验证,设备还必须具有 RADIUS 服务器的根 CA 证书,以便对服务器进行身份验证。 Microsoft 不提供其中任一证书;你或网络管理员负责确定网络 RADIUS 服务器的正确证书颁发机构,然后从颁发者获取必要的证书。

若要获取 RADIUS 服务器的证书,需要向证书颁发机构进行身份验证。 如前所述,可以使用 DAA 证书实现此目的。 获取 RADIUS 服务器的证书后,应将其存储在设备证书存储中。 设备证书存储仅用于使用 EAP-TLS 对安全网络进行身份验证。 (DAA 证书未保留在设备证书存储中;它安全地保存在 OS.) CLI 中的 az sphere device certificate 命令允许从命令行管理证书存储。 Azure Sphere 应用程序可以使用 CertStore API 在设备证书存储中存储、检索和管理证书。 CertStore API 还包括返回有关单个证书的信息的函数,以便应用可以为证书过期和续订做好准备。

有关 EAP-TLS 网络中使用的证书的完整说明,请参阅使用 EAP-TLS;有关其他信息,请参阅Microsoft Tech Community上的保护企业 Wi-Fi 访问:Azure Sphere 上的 EAP-TLS

Azure Sphere 应用程序

Azure Sphere 应用程序需要证书才能对 Web 服务和某些网络进行身份验证。 根据服务或终结点的要求,应用可以使用 DAA 证书或来自外部证书颁发机构的证书。

使用 wolfSSL 或类似库连接到第三方服务的应用可以调用 DeviceAuth_GetCertificatePath 函数来获取用于身份验证的 DAA 证书。 此函数是在 20.10 SDK 的 deviceauth.h 标头中引入的。

Azure Sphere 中内置的 Azure IoT 库已信任必要的根 CA,因此使用此库访问 Azure IoT 服务 (Azure IoT 中心、Azure IoT Central、设备预配服务) 的应用不需要任何其他证书。

如果应用使用其他 Azure 服务,检查这些服务的文档来确定需要哪些证书。

Azure Sphere REST API

Azure Sphere REST API 是一组服务终结点,支持用于创建和管理 Azure Sphere 资源(如目录、产品、部署和设备组)的 HTTP 操作。 Azure Sphere REST API 使用 REST (REpresentational State Transfer) HTTP 协议发送操作请求和响应。 操作响应中返回的数据采用 JSON (JavaScript 对象表示法) 格式。 Azure Sphere REST API 参考中介绍了可用的操作。

Azure Sphere 安全服务

一般情况下,Azure Sphere 云服务(尤其是安全服务)管理许多用于安全服务到服务通信的证书。 其中大多数证书是服务及其客户端的内部证书,因此 Microsoft 根据需要协调更新。 例如,除了在 10 月更新公共 API TLS 证书外,Azure Sphere 安全服务还更新了 DAA 服务和更新服务的 TLS 证书。 在更新之前,设备收到了受信任的根存储的 OTA 更新,其中包括新的所需根证书。 无需客户操作来维护设备与安全服务的通信。

Azure Sphere 如何让客户更轻松地更改证书?

证书过期是 Azure Sphere 可以预防 的 IoT 设备故障 的常见原因。

由于 Azure Sphere 产品包括 OS 和安全服务,因此这两个组件使用的证书由 Microsoft 管理。 设备通过 DAA 进程、OS 和应用程序更新以及错误报告接收更新的证书,而无需更改应用程序。 Microsoft 添加 DigiCert 全局根 G2 证书时,无需客户更改即可继续 DAA、更新或错误报告。 更新时处于脱机状态的设备在重新连接到 Internet 后立即收到更新。

Azure Sphere OS 还包括 Azure IoT 库,因此,如果 Microsoft 对 Azure IoT 库使用的证书进行了进一步更改,我们将更新 OS 中的库,以便无需更改应用程序。 我们还将通过其他博客文章告知你任何可能需要修改应用或脚本的边缘情况或特殊情况。

这两种情况都显示了 Azure Sphere 如何通过消除应用程序维护更新来处理证书更改的需要来简化应用程序管理。 由于每台设备在其日常证明过程中都会收到更新证书,因此可以轻松管理设备和应用程序使用的任何本地托管证书的更新。 例如,如果应用程序按应) 验证业务线服务器 (的标识,则可以部署包含更新证书的更新应用程序映像包。 Azure Sphere 平台提供的应用程序更新服务提供这些更新,从而消除了更新服务本身会导致证书过期问题的担心。

有关详细信息

Azure Sphere 设备身份验证和证明服务

Azure Sphere 的其他证书更新

Azure TLS 证书更改

Azure IoT TLS:即将发生更改! (...以及为什么你应该关心)