跳到主要内容

预配置与信任锚

本章面向租户管理员,介绍如何在不逐台创建、配置设备的前提下,把成批设备接入 DeviceChain。内容涉及侧边栏 Connect(连接)下和设备页面上的三项功能:

  • Provisioning Profiles(预配置文件):设备群自行注册所用的共享入口。
  • Trust Anchors(信任锚):你的租户信任的、用来为设备证书担保的证书颁发机构。
  • 证书凭据:设备使用客户端证书而不是令牌或密码登录。

这两个页面需要 device:read 权限才能打开,需要 device:write 权限才能做出任何更改。仅限于租户部分客户或分组的成员看不到它们。

目前已提供的部分

证书认证分阶段推出。在控制台中,你可以创建信任锚、为设备添加证书凭据,并创建证书预配置文件。证书已登记为凭据的设备,可以用它连接 MQTT 代理。证书链到某个证书预配置文件信任锚的设备,会在首次连接时自行注册。采用(adopt)你事先创建的设备,以及证书续期,目前尚不可用。参见目前证书方面可用的功能。

预配置文件​

预配置文件(provisioning profile)让设备群自行注册。每台设备出厂时带有同一组密钥和机密,第一次通电时自行报到,你无需先创建每一台设备。本章讲控制台一侧。固件如何发出请求、会收到什么应答,参见设备自注册。

打开 Connect → Provisioning Profiles。列表显示每个预配置文件的名称、令牌、设备类型和策略,它已注册的设备数(若设有上限则与上限对比),以及状态,其中已禁用、已过期或标有 Rotate required(需要轮换)的预配置文件会带徽标。

创建预配置文件​

选择 New provisioning profile(新建预配置文件),然后填写:

  • Name(名称)和 Description(描述),与其他实体相同。
  • Authenticates by(认证方式):Shared secret(共享机密)或 Certificate(证书)(参见证书预配置文件)。创建预配置文件时选定。
  • Provision key(预配置密钥,仅共享机密):设备注册时使用的公开名称。它在租户内唯一,并按输入原样保存。它不是机密。
  • Device type(设备类型):该预配置文件创建的所有设备的类型,也是它唯一会接管的类型。
  • Strategy(策略):Allow new devices(允许新设备)会创建平台尚不认识的设备,也会接管你预期归于此预配置文件的设备。Only pre-registered devices(仅限预先注册的设备)只注册你事先创建、并预期归于此预配置文件的设备;未知设备会被拒绝。
  • Device limit(设备上限):此预配置文件最多可注册的设备数。留空表示不设上限。调低它只会拒绝后续注册,不会删除任何东西。
  • Expires(过期时间):此时间之后,预配置文件拒绝新的注册。已注册的设备不受影响。留空表示永不过期。
  • Accepting registrations(接受注册):关闭后立即拒绝新的注册。

选择 Create provisioning profile。对于共享机密的预配置文件,接下来会出现对话框 Copy the provision secret now(立即复制预配置机密),其中显示预配置密钥和服务器生成的机密。**机密只显示一次。**平台只保存单向摘要,因此无法再次显示;如果丢失,请轮换。把密钥和机密烧录到设备群的固件中。

跟踪预配置文件​

选择一个预配置文件即可打开。Registration(注册)面板统计 Registered devices(已注册设备,即持有该预配置文件所签发凭据的设备,含已吊销的)和 Devices expected for this profile(预期归于此预配置文件的设备,即为它创建但不一定已注册的设备)。View devices 会打开按这两类之一筛选的设备列表。

在预配置文件页面上你还可以:

  • Rotate secret(轮换机密):替换机密。旧机密立即失效,没有重叠期,新机密只显示一次。已注册的设备保留其凭据。如果某个预配置文件的机密是在平台开始生成机密之前选定的,它会被标为 Rotate required,在你轮换之前拒绝所有注册。
  • Revoke devices(吊销设备):禁用通过该预配置文件注册的设备的凭据,并终止其在线连接。在你重置每台设备的预配置之前,它们都会被拒绝。如果机密可能已经泄露,请这样做,并同时轮换机密。
  • Delete(删除):只要仍有设备持有该预配置文件签发的凭据,就会被拒绝。请先吊销这些设备,然后重置其预配置或删除它们。

预期设备​

只有当你预期某台现有设备归于某个预配置文件时,该预配置文件才会接管它。创建设备时,在设备表单中设置 Expected provisioning profile(预期的预配置文件);该选项会列出与设备类型匹配的预配置文件。它只能在创建设备时设置。原因以及 CSV 和 API 中的对应方式,参见预先标记。

设备页面会显示它是如何进入平台的,并提供 Reset provisioning(重置预配置)。可用它让已被吊销的设备,或丢失了凭据的设备重新注册。

信任锚​

信任锚(trust anchor)是一份证书颁发机构(CA)证书。只有证书链通向你已登记的某个信任锚时,设备证书才会被接受。打开 Connect → Trust Anchors。列表显示每个信任锚的主体、过期时间,以及有多少凭据和预配置文件在使用它,已禁用、已过期或 Expires in N d(N 天后过期)的信任锚会带徽标。

添加信任锚​

选择 New trust anchor(新建信任锚),为它设置令牌和名称,并提供 CA certificate (PEM)(CA 证书):粘贴文本,或选择文件。

  • 只提供一份证书。它可以是根证书,也可以是中间证书(如果你只想信任某一个子 CA)。
  • 只提供证书,绝不要提供私钥。表单会拒绝包含私钥的文本。
  • 证书之后无法更改。另一个 CA 就是另一个信任锚。

一个租户最多可以有 32 个信任锚。如果服务器拒绝了证书,表单会用一句话说明原因,例如它不是证书。

查看、禁用和删除信任锚​

选择一个信任锚,可以看到它的 SHA-256 指纹、主体、颁发者、有效期,以及 In use(使用中)面板,其中给出指向它的凭据数和预配置文件数。

  • Disable(禁用)会停止信任该信任锚。控制台会先给出警告:证书链通向它的所有设备都会停止认证并被立即断开,在你重新启用该信任锚之前无法重新连接。
  • Enable(启用)则撤销上述操作。
  • Delete(删除)在仍有凭据或预配置文件指向该信任锚时会被拒绝。控制台会说明具体数量。请先移除这些引用或改指其他信任锚,或者禁用该信任锚以停止信任它。

设备上的证书凭据​

设备可以持有一种证书类型的凭据。打开设备,再打开其 Credentials 选项卡(参见凭据)。在 Type 中选择 X509_CERTIFICATE,然后:

  1. 粘贴 Device certificate (PEM)(设备证书)。这是设备自己的证书,后面可以附上把它连到信任锚的中间证书。只能是证书,绝不能是私钥。
  2. 选择证书链必须到达的 Trust anchor(信任锚)。只会提供已启用且未过期的信任锚。
  3. 选择 Add certificate credential(添加证书凭据)。

平台会立即验证证书链,并拒绝证书链无法完成认证的证书。随后它计算证书的 SHA-256 pin(指纹),将其作为凭据的 id,并以 Certificate pinned(证书已固定)的形式回显,同时给出通用名称和有效期截止日期。该 pin 是公开的;它用于标识证书,不是机密。

该选项卡的每一行显示通用名称、pin、信任锚,以及证书及其证书链中最早的过期时间,临近或已过期时会加以标记。一台设备最多可以持有三个证书凭据;在你尝试添加第四个之前,控制台就会提示这一点。没有信任锚的证书凭据无法完成认证;请移除后重新添加。

证书预配置文件​

Authenticates by 为 Certificate 的预配置文件指定的是一个信任锚,而不是机密。没有需要签发、显示或轮换的内容。设备的令牌由其证书派生:pv- 加上证书的通用名称,而通用名称就是设备的外部 id。

在你为这种预配置文件预期设备时,这条规则会体现出来。在设备表单中,把 External id(外部 id)设为证书的通用名称并让令牌留空,或者把令牌设为派生出的值。为证书预配置文件预期的设备之后不能更改外部 id。一个租户最多可以有八个证书预配置文件。

目前证书方面可用的功能​

  • **已登记的证书可以连接。**设备通过 TLS 连接 MQTT 代理,并出示其客户端证书。其 MQTT 用户名为 {tenant}:@x509,不带密码,客户端 id 是平台分配给该设备的 id。平台查找证书的 pin,在每次连接时按凭据的信任锚检查证书链,并让会话最迟在证书链中最早的过期时间结束。禁用凭据、信任锚或设备,都会让下一次连接被拒绝。
  • **首次连接时注册已可用。**没有任何凭据固定、且链到某个已启用的证书预配置文件(策略为 Allow new devices)的信任锚的证书,会创建设备并把证书固定到它上面。设备令牌由其通用名称派生,因此客户端 id 可以根据证书计算出来。如果一张证书链到多个预配置文件的信任锚,信任锚离证书最近的预配置文件胜出,并列则被拒绝。步骤和客户端 id 规则见使用证书连接设备。
  • **采用和续期目前尚不可用。**你事先创建并预期归于某个证书预配置文件的设备,以及注册被重置过的设备,都不能通过证书注册;请自行为它们添加证书凭据。已持有一张证书的设备再出示另一张不同的证书,在续期功能推出之前会被拒绝。请在旧证书过期前把新证书添加为凭据。
  • **需要 DeviceChain 的代理。**默认代理会向每台设备请求客户端证书。回退到上游代理镜像的实例,仍可服务令牌和密码设备,但会拒绝证书设备。参见版本与升级。
  • 监控。DeviceX509ChainFailuresSustained 及相关告警在可观测性中说明。

相关内容​