如何使用Matter Certificate 工具
CHIP 证书工具(chip-cert)提供命令行接口(CLI)实用程序用于生成和操作 CHIP 证书和 CHIP 私钥。
源码目录
该目录包含"chip-cert"工具的各种命令处理程序:
- 生成证书
- 转换证书格式
- 转换私钥格式
- 验证证书链
- 重新颁发证书
- 打印证书
- 生成认证证书
编译使用
进入 connectedhomeip 项目根目录,在终端中,运行以下命令以构建工具可执行文件:
cd src/tools/chip-cert && gn gen out && ninja -C out chip-cert
帮助指令示例
为详细的"证书"工具使用说明指定"帮助"选项:
./chip-cert help
指定"帮助"选项以详细说明每个命令的使用情况:
./chip-cert gen-cert --help
操作证书使用示例
可用于生成 CHIP 根证书和私有Key的示例命令:
./chip-cert gen-cert --type r --subject-chip-id CACACACA00000001 --valid-from "2020-10-15 14:23:43" --lifetime 7305 --out-key Chip-Root-Key.pem --out Chip-Root-Cert.pem --out-format x509-pem
然后可以使用的根证书/密钥输出来生成CA(ICA)证书和私钥:
./chip-cert gen-cert --type c --subject-chip-id CACACACA00000002 --valid-from "2020-10-15 14:23:43" --lifetime 7305 --ca-key Chip-Root-Key.pem --ca-cert Chip-Root-Cert.pem --out-key Chip-ICA-Key.pem --out Chip-ICA-Cert.pem --out-format x509-pem
生成的 ICA 证书/密钥可用于签名多个 CHIP 节点证书:
./chip-cert gen-cert --type n --subject-chip-id DEDEDEDE0000001D --subject-fab-id FAB000000000001D --valid-from "2020-10-15 14:23:43" --lifetime 7305 --ca-key Chip-ICA-Key.pem --ca-cert Chip-ICA-Cert.pem --out-key Chip-Node-Key.chip-b64 --out Chip-Node-Cert.chip-b64 --out-format chip-b64
以下示例生成节点证书,其中 CA 证书/密钥和Node 密钥作为命令行参数提供:
./chip-cert gen-cert --type n --subject-chip-id DEDEDEDE0000001E --subject-fab-id FAB000000000001D --valid-from "2020-10-15 14:23:43" --lifetime 7305 --ca-key 30770201010420C31A9FD24F91B28F3553C6DD0BC05DFB264FB19DE4A293457FF61CF08656F795A00A06082A8648CE3D030107A144034200046909160652E60035DEAFF5EE4DCED6E451BB171D39972874193CBDEA79E2C81198A8CA5151F0FC086556B8D63610E9DDB237DA1AFAC7378838897FA46A776BE5 --ca-cert FTABCEV4XDq64xZcJAIBNwMnFAEAAADKysrKGCYE7xcbJyYFbrW5TDcGJxMEAAAAysrKyicVHQAAAAAAsPoYJAcBJAgBMAlBBGkJFgZS5gA13q/17k3O1uRRuxcdOZcodBk8vep54sgRmKjKUVHw/AhlVrjWNhDp3bI32hr6xzeIOIl/pGp3a+U3CjUBKQEkAgAYJAJgMAQUTMntCbE2MN9jRhRZ0bmiX4LtcIYwBRTwPNuYHS2KwOmYp5Apx6b9P/ztyBgwC0D8Ieqk5XNVp4h3De3CAlndmNqPzT/yGQFkgjozuBz41efPVctoPODsGq6zKv/0RIO45obJNN8X1pGQrtv/9JVSGA== --key 04F1C53AFB1761A75FF07437018E5B76BC75F852904DC7C4607839A5D953140FFE253626FB737647F1043F61D91B5EC0D3B42A7A25FA209CAB7ACD1A76CA46ECD2 --out Chip-Node02-Cert.chip-b64 --out-format chip-b64
现'证书'工具可用于验证生成的节点证书:
./chip-cert validate-cert Chip-Node-Cert.chip-b64 -c Chip-ICA-Cert.pem -t Chip-Root-Cert.pem
通常,CA 服务生成标准 X。509 PEM 格式的证书。然后,他们可以使用此"证书"工具将证书转换为原始 TLV 的格式:
./chip-cert convert-cert Chip-ICA-Cert.pem Chip-ICA-Cert.chip --chip
开发人员可以使用此工具打印 CHIP 证书的内容:
./chip-cert print-cert Chip-Root-Cert.pem
认证证书使用示例
可用于生成产品认证机构(PAA)的示例命令
证书和私钥:
./chip-cert gen-att-cert --type a --subject-cn "Matter Development PAA 01" --valid-from "2020-10-15 14:23:43" --lifetime 7305 --out-key Chip-PAA-Key.pem --out Chip-PAA-Cert.pem
然后可以使用 PAA 证书/密钥输出来生成产品认证中级(PAI)证书和私钥:
./chip-cert gen-att-cert --type i --subject-cn "Matter Development PAI 01" --subject-vid FFF1 --valid-from "2020-10-15 14:23:43" --lifetime 7305 --ca-key Chip-PAA-Key.pem --ca-cert Chip-PAA-Cert.pem --out-key Chip-PAI-Key.pem --out Chip-PAI-Cert.pem
然后,生成的 PAI 证书/密钥可用于签署多个设备认证证书(DAC):
./chip-cert gen-att-cert --type d --subject-cn "Matter Development DAC 01" --subject-vid FFF1 --subject-pid 0123 --valid-from "2020-10-15 14:23:43" --lifetime 7305 --ca-key Chip-PAI-Key.pem --ca-cert Chip-PAI-Cert.pem --out-key Chip-DAC-Key.pem --out Chip-DAC-Cert.pem
现'证书'工具可用于验证生成的节点证书:
./chip-cert validate-att-cert --dac Chip-DAC-Cert.pem --pai Chip-PAI-Cert.pem --paa Chip-PAA-Cert.pem
等效的 openssl 命令行工具也可用于验证刚刚创建的证明证书链:
openssl verify -CAfile Chip-PAA-Cert.pem -untrusted Chip-PAI-Cert.pem Chip-DAC-Cert.pem
其他命令示例
gen-cd 示例
生成证书声明(CD)的示例如下:
./chip-cert gen-cd -C credentials/test/certification-declaration/Chip-Test-CD-Signing-Cert.pem -K credentials/test/certification-declaration/Chip-Test-CD-Signing-Key.pem --out cd.bin -f 1 -V FFF1 -p 8000 -d 0016 -c "ZIG0000000000000000" -l 0 -i 0 -n 0001 -t 0
CMS 签名 CD 的二进制输出写入 cd.bin
.
- 将 -V FFF1 替换为带有零填充的大写六角形 VID
- 将 -p 8000 替换为带有零填充的大写十六进制 PID
- 将 -d 0016 替换为大写十六进制的主要设备类型,其中零填充
注: dac-origin-vendor-id
並 dac-origin-product-id
不包括在内这个例子。
打印-cd 示例
打印证书声明(CD)的示例,以hex格式的命令行参数:
./chip-cert print-cd 3081f506092a864886f70d010702a081e73081e4020103310d300b0609608648016503040201305006092a864886f70d010701a0430441152400012501f2ff360205018005028018250334122c04135a494732303134325a423333303030322d3234240500240600250794262408002509f1ff250a008018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100926296f7578158be7c459388336ca7383766c9eedd9855cbda6f4cf6bdf43211022100e0dbf4a2bcec4ea274baf0dea208b3365c6ed544086d101afdaf079a2c23e0de
转载自:https://juejin.cn/post/7378836196032479273