attezt 是一套远程证明工具。
它提供了多个组件,使 Linux 系统能够通过 device-attest-01 ACME 挑战获得硬件支持的设备证书。这对于需要强设备身份声明的环境非常有用,例如用于 mTLS 设置的 x509 证书。
它目前支持 smallstep,但也拥有自己的客户端实现来管理设备证书。
atteztd 提供证明证书颁发机构。它有一个后端清单 API,能够查询 CMDB 设置以获取设备清单并验证设备。
attezt-agent 提供一个客户端代理,可以通过 PKCS11 代理提供 TPM 证书。该代理可用于诸如通过浏览器进行 mTLS 以证明真实性等场景。
attezt 是用于管理 attezt-agent 和 atteztd 部署的程序。它允许你检查设备的注册状态、配置证书。或者管理证明证书颁发机构。
整个项目仍在开发中,不确定功能会有多完整。
attezt 需要一个小的 CA 链。使用 attezt 创建它。
λ » attezt ca create
atteztd 运行证明服务器。请注意,它将签署任何能够解决该挑战的证书。
λ » atteztd
2025/12/22 23:13:31 HTTP server listening on :8080
将提供程序添加到 step-ca 中。
λ ~ » curl -O http://127.0.0.1:8080/root.pem
λ ~ » step ca provisioner add acme-da \
--type ACME \
--challenge device-attest-01 \
--attestation-format tpm \
--attestation-roots ./root.pem
step ca 颁发设备证书要将此服务与 step ca certificate 一起使用,你可以运行类似以下的内容。
# Device certificate attested by ak
λ » step ca certificate \
--attestation-ca-url 'http://127.0.0.1:8080' \
--attestation-uri 'tpmkms:name=device' \
--provisioner acme-da $(hostname) device.crt device.crt
你也可以续订设备证书。
λ » step ca renew --force --kms "tpmkms" ./device.crt 'tpmkms:name=device'
attezt-agent 颁发设备证书运行 attezt-agent。
λ » sudo attezt-agent
2026/03/15 16:33:55 p11kit-server is running
2026/03/15 16:33:55 export P11_KIT_SERVER_ADDRESS=unix:path=/run/attezt/p11kit.socket
2026/03/15 16:33:55 varlink service is running
2026/03/15 16:33:55 Running at: /run/attezt/dev.attezt.Agent
enroll 运行注册流程并获取设备证书。
λ » attezt status
Status:
Endorsement Key: 2ea8888a4a935bfd418e6a700785655b0d2711abc52e71f1dbeeee03e9650396
Enrollment status: false
λ » attezt enroll --acme "https://ca.home.arpa/acme/acme-da" --attestation "http://attezt.local:8080"
λ » attezt status
Status:
Endorsement Key: 2ea8888a4a935bfd418e6a700785655b0d2711abc52e71f1dbeeee03e9650396
Enrollment status: true
ACME Server: https://ca.home.arpa/acme/acme-da
Attestation Server: http://attezt.local:8080
Certificate chain:
X.509v3 TLS Certificate (RSA 2048) [Serial: 1433...6348]
Subject: framework
Issuer: Linderud Internal CA Intermediate CA
Provisioner: acme-da
Valid from: 2026-03-15T15:35:31Z
to: 2026-03-16T15:35:31Z
X.509v3 Intermediate CA Certificate (ECDSA P-256) [Serial: 3050...3071]
Subject: Linderud Internal CA Intermediate CA
Issuer: Linderud Internal CA Root CA
Valid from: 2026-01-03T15:15:45Z
to: 2036-01-01T15:15:45Z
要让浏览器可见此证书,你需要将 p11-kit-client.so 添加到 nss 数据库中,并为该域创建浏览器策略。
λ » modutil -dbdir ~/.pki/nssdb -add attezt -libfile /usr/lib/pkcs11/p11-kit-client.so
λ » export P11_KIT_SERVER_ADDRESS=unix:path=/run/attezt/p11kit.sock
策略示例。
# cat /etc/chromium/policies/managed/mtls.json
{
"AutoSelectCertificateForUrls": [
"{\"pattern\":\"https://example.com\",\"filter\":{\"ISSUER\":{\"O\":\"My Internal CA\"}}}"
]
}
启动 chromium,享受你的新客户端证书。
λ » chromium