为 EAP-TLS 网络获取和部署证书
重要
这是 Azure Sphere(旧版)文档。 Azure Sphere(旧版)将于 2027 年 9 月 27 日停用,用户此时必须迁移到 Azure Sphere(集成)。 使用位于 TOC 上方的版本选择器查看 Azure Sphere(集成)文档。
在 Azure Sphere 设备可以连接到 EAP-TLS 网络之前,它必须具有一个客户端证书,RADIUS 服务器可以使用该证书对设备进行身份验证。 如果你的网络需要相互身份验证,则每个设备还必须具有根 CA 证书,以便可以对 RADIUS 服务器进行身份验证。
如何获取和部署这些证书取决于设备可用的网络资源。
- 如果 EAP-TLS 网络是唯一可用的网络,则需手动部署证书。
- 如果有其他形式的网络,如开放式网络,则可以采用“启动”方法。 在启动方法中,Azure Sphere 高级应用程序从开放式网络获取证书,然后将其连接到 EAP-TLS 网络。
注意
因为证书 ID 在系统范围内应用,所以,用于添加新证书的 azsphere 命令或函数调用可能会覆盖通过先前的命令或函数调用添加的证书,因而可能会导致网络连接失败。 强烈建议你制定清晰的证书更新过程,并仔细选择证书 ID。 有关详细信息,请参阅证书 ID。
手动部署
如果 EAP-TLS 网络是设备唯一可用的网络,则需手动部署证书。 手动部署涉及使用网络电脑或 Linux 计算机获取证书,然后使用 Azure Sphere CLI 将证书加载到每个 Azure Sphere 设备上。 此方法要求在电脑或 Linux 计算机与 Azure Sphere 设备之间建立物理连接。
手动获取证书
根 CA 和客户端证书必须位于 .要加载到 Azure Sphere 设备的 PEM 格式。 你将需要从相应服务器获取根 CA 证书,以及设备的客户端证书和私钥(还可以选择为你的私钥提供密码)。 每个证书都必须由你的 EAP-TLS 网络中的相应服务器生成和签名。 网络管理员或安全团队可提供获取证书所需的详细信息。
将证书保存在 .电脑或 Linux 计算机上的 PEM 格式,然后使用 Azure Sphere CLI 将它们存储在 Azure Sphere 设备上。
使用 CLI 存储证书
将 Azure Sphere 设备连接到联网电脑或 Linux 计算机,并使用 azsphere 命令将证书存储在设备上。
要将根 CA 证书存储到 Azure Sphere 设备上:
azsphere device certificate add --cert-id "server-key-xyz" --cert-type rootca --public-key-file <filepath_to_server_ca_public.pem>
要将客户端证书存储到 Azure Sphere 设备上:
azsphere device certificate add --cert-id "client-key-abc" --cert-type client --public-key-file <filepath_to_client_public.pem> --private-key-file <filepath_to_client_private.pem> --private-key-password "_password_"
启动部署
要将大量 Azure Sphere 设备连接到多个位置,请考虑使用“启动”方法。 要使用此方法,你的设备必须能够连接到网络,用户可以通过该网络访问提供证书的服务器。 高级别 Azure Sphere 应用程序通过可用网络连接到服务器,请求证书,并将其存储在设备上。
下图概述了这一过程。
Azure Sphere 设备上的应用程序连接到开放式网络并与 Azure Sphere 安全服务联系以获取其 DAA 证书。 然后,它将在设备上安装 DAA 证书。 设备应使用此证书通过证书颁发服务进行身份验证。
接下来,应用程序将连接到网络管理员指定的证书颁发服务。 它提供其 DAA 证书,用于通过服务器验证其身份,并请求 EAP-TLS 网络上 RADIUS 服务器的根 CA 证书以及客户端证书和私钥。 如果需要,服务可能会将其他信息传递到应用程序,如客户端标识和私钥密码。 然后,应用程序会在设备上安装客户端证书、客户端私钥和根 CA 证书。 然后,它可以从开放式网络断开连接。
应用程序配置并启用 EAP-TLS 网络。 它提供客户端证书和私钥来证明设备的身份。 如果网络支持相互身份验证,则应用程序还会通过使用根 CA 证书对 RADIUS 服务器进行身份验证。
在启动过程中对设备进行身份验证并获取客户端证书
Azure Sphere 设备可以使用其设备身份验证和证明 (DAA) 证书对可提供其他所需证书的服务进行身份验证。 可以从 Azure Sphere 安全服务获取 DAA 证书。
要获取 DAA 证书:
- 在高级别应用程序的应用程序清单的 DeviceAuthentication 部分中指定 Azure Sphere 租户 ID。
- 从高级别应用程序调用 DeviceAuth_CurlSslFunc,以获取当前 Azure Sphere 租户的证书链。
如果应用程序清单包含当前设备的 Azure Sphere 租户 ID,且目标服务需要 TLS 相互身份验证,则“DeviceAuth_CurlSslFunc”函数将使用 DAA 客户端证书链进行身份验证。
获取 RADIUS 服务器的根 CA 证书
若要获取 RADIUS 服务器的根 CA 证书,应用程序将连接到可在其网络上访问并可提供证书的证书服务器终结点。 网络管理员应该能够提供有关如何连接到终结点和检索证书的信息。
使用 CertStore API 安装证书
应用程序使用 CertStore API 将证书安装到设备上。 “CertStore_InstallClientCertificate”函数安装客户端证书,“CertStore_InstallRootCACertificate”安装用于 RADIUS 服务器的根 CA 证书。 在高级别应用程序中管理证书提供有关使用 CertStore API 进行证书管理的其他信息。
证书示例应用程序展示了应用程序如何使用这些函数。