linux使用eaptls方式,为 EAP-TLS 网络获取和部署证书

为 EAP-TLS 网络获取和部署证书

04/13/2020

本文内容

在 Azure Sphere 设备可以连接到 EAP-TLS 网络之前,它必须具有一个客户端证书,RADIUS 服务器可以使用该证书对设备进行身份验证。 如果你的网络需要相互身份验证,则每个设备还必须具有根 CA 证书,以便可以对 RADIUS 服务器进行身份验证。

如何获取和部署这些证书取决于设备可用的网络资源。

如果 EAP-TLS 网络是唯一可用的网络,则需手动部署证书。

如果有其他形式的网络,如开放式网络,则可以采用“启动”方法。 在启动方法中,Azure Sphere 高级应用程序从开放式网络获取证书,然后将其连接到 EAP-TLS 网络。

注意

因为证书 ID 都是在系统范围内应用,所以,添加新证书的 azsphere 命令或函数调用会覆盖由先前的命令或函数调用添加的证书,因而可能会导致网络连接失败。 强烈建议你制定清晰的证书更新过程,并仔细选择证书 ID。 有关详细信息,请参阅证书 ID。

手动部署

如果 EAP-TLS 网络是设备唯一可用的网络,则需手动部署证书。 手动部署涉及到使用联网电脑或 Linux 计算机获取证书,然后使用 azsphere 命令行接口 (CLI) 将证书加载到每个 Azure Sphere 设备上。 此方法要求在电脑或 Linux 计算机与 Azure Sphere 设备之间建立物理连接。

手动获取证书

根 CA 和客户端证书必须采用 .pem 格式才能加载到 Azure Sphere 设备上。 你将需要从相应服务器获取根 CA 证书,以及设备的客户端证书和私钥(还可以选择为你的私钥提供密码)。 每个证书都必须由你的 EAP-TLS 网络中的相应服务器生成和签名。 网络管理员或安全团队可提供获取证书所需的详细信息。

在电脑或 Linux 计算机上以 .pem 格式保存证书,然后使用 Azure Sphere CLI 将其存储在 Azure Sphere 设备上。

使用 CLI 存储证书

将 Azure Sphere 设备连接到联网电脑或 Linux 计算机,并使用 azsphere 命令将证书存储在设备上。

要将根 CA 证书存储到 Azure Sphere 设备上:

azsphere device certificate add --certid "server-key-xyz" --certtype rootca --publickeyfilepath

要将客户端证书存储到 Azure Sphere 设备上:

azsphere device certificate add --certid "client-key-abc" --certtype client --publickeyfilepath --privatekeyfilepath --privatekeypassword "_password_"

启动部署

要将大量 Azure Sphere 设备连接到多个位置,请考虑使用“启动”方法。 要使用此方法,你的设备必须能够连接到网络,用户可以通过该网络访问提供证书的服务器。 高级别 Azure Sphere 应用程序通过可用网络连接到服务器,请求证书,并将其存储在设备上。

下图概述了这一过程。

5a1f6e0c17ceff04a9dc12ea7e911581.png

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 进行证书管理的其他信息。

证书示例应用程序展示了应用程序如何使用这些函数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值