Commands中文

CLI 命令参考

二进制文件名:pki(或 varwof

全局标志:

  • --config <path> — 配置文件路径(覆盖自动发现)
  • -v, --verbose — 启用调试日志

证书颁发机构

varwof ca init

初始化新的 CA(根 CA 或中间 CA)。

varwof ca init \
  --name "My CA" \
  --key-type ecdsa-p256 \
  --validity 3650d \
  --out-cert ca.pem \
  --out-key ca.key
标志 描述
--name CA 名称(唯一标识符)
--profile CA 配置文件:root-casub-ca
--parent 父 CA 名称(用于子 CA)
--parent-key 父 CA 私钥路径
--key-type ecdsa-p256ecdsa-p384rsa-2048rsa-4096
--validity 有效期(例如 3650d87600h
--out-cert 输出证书路径
--out-key 输出私钥路径
--password 使用密码加密私钥
--org 组织名称
--country 国家代码
--permitted-dns 名称约束:允许的 DNS
--excluded-dns 名称约束:排除的 DNS

varwof ca list

列出数据库中的所有 CA。

varwof ca info

显示 CA 详情。

varwof ca info --name "My CA"

varwof ca offline-sign

离线签署子 CA 证书(气隙操作)。

varwof ca offline-sign \
  --ca-cert root/ca.pem \
  --ca-key root/ca.key \
  --csr sub.csr \
  --out sub-ca.pem \
  --validity 3650d

varwof ca cold-backup

创建 CA 密钥的加密冷备份。

varwof ca cold-backup create \
  --ca-name "Root CA" \
  --ca-cert root/ca.pem \
  --ca-key root/ca.key \
  --password "backup-secret" \
  --out backup.json

证书生命周期

varwof issue

签发证书(从 CSR 或自动生成密钥)。

varwof issue \
  --ca "Issuing CA" \
  --cn server.example.com \
  --san DNS:server.example.com \
  --profile tls-server \
  --key-type ecdsa-p256 \
  --out-dir certs/ \
  --out-name server
标志 描述
--ca 签发 CA 名称
--cn 通用名称
--san 主体备用名称(DNS:IP:URI:email:
--profile 证书配置文件
--key-type 自动生成密钥的类型
--validity 证书有效期
--csr 内联 CSR(PEM)
--csr-file CSR 文件路径
--out-dir 输出目录
--out-name 输出文件基础名称
--encrypt 加密私钥
--encrypt-password 密钥加密密码
--no-store-key 不在数据库中存储私钥
--must-staple 添加 OCSP must-staple 扩展

SAN 格式示例:

--san DNS:example.com,DNS:www.example.com,IP:10.0.0.1,email:user@example.com

varwof renew

续期证书。

varwof renew --serial <serial> --ca "Issuing CA" --validity 365d
标志 描述
--serial 证书序列号
--cert 证书文件路径(--serial 的替代方式)
--ca CA 名称
--validity 新的有效期
--keep-key 重用现有私钥
--key-type 新的密钥类型

varwof revoke

吊销证书。

varwof revoke --serial <serial> --ca "Issuing CA" --reason key-compromise

吊销原因:unspecifiedkey-compromiseca-compromiseaffiliation-changedsupersededcessation-of-operationcertificate-holdremove-from-crlprivilege-withdrawnaa-compromise

varwof list

列出证书。

varwof list --ca "Issuing CA" --status valid --format table
varwof list --cn server --format json --limit 10

varwof view

查看证书详情。

varwof view --serial <serial> --ca "Issuing CA"

批量操作

varwof batch

从 CSV 批量签发证书。

varwof batch --ca "Issuing CA" --csv hosts.csv --out-dir certs/

CSV 格式:

cn,san,profile
server1.example.com,DNS:server1.example.com,tls-server
server2.example.com,DNS:server2.example.com,tls-server

PKCS#7 签名

varwof sign

使用 PKCS#7 签署文件。

# Detached signature
varwof sign --ca "CodeSign CA" --cert signer.pem --key signer.key \
  --in document.pdf --sig document.pdf.p7s

# Embedded signature
varwof sign --ca "CodeSign CA" --cert signer.pem --key signer.key \
  --in document.pdf --embed --sig document.pdf.p7s

# CAdES-T (timestamped)
varwof sign --ca "CodeSign CA" --cert signer.pem --key signer.key \
  --in document.pdf --cades --sig document.pdf.p7s

varwof verify

验证 PKCS#7 签名。

varwof verify --sig document.pdf.p7s --in document.pdf
varwof verify --embed document-signed.pdf

varwof run

验证二进制文件的分离签名,然后执行。

varwof run --run-ca "CodeSign CA" --sig tool.bin.p7s tool.bin

导入/导出

varwof import

从 OpenSSL 格式或 PKCS#12 导入证书。

# From OpenSSL index.txt
varwof import --ca "My CA" --index index.txt --cert-dir certs/

# From PKCS#12
varwof import --ca "My CA" --pfx bundle.p12 --password "secret"

varwof export

将证书导出为 PKCS#12。

varwof export --cert cert.pem --key key.pem --chain ca-chain.pem \
  --pfx out.p12 --pfx-password "secret"

密钥管理

varwof key encrypt / varwof key decrypt

加密/解密私钥。

varwof key encrypt --in plain.key --out encrypted.key --password "secret"
varwof key decrypt --in encrypted.key --out plain.key --password "secret"

varwof recover

恢复托管的私钥。

varwof recover --serial <serial> --ca "My CA" --admin-key admin.key --out recovered.key

服务器

varwof serve

启动所有 PKI 服务(TSA + OCSP + Web + API)。

varwof serve --config pki.json
标志 描述
--config 配置文件路径
--reload 启用配置热重载
--install 安装为 Windows 服务
--uninstall 卸载 Windows 服务

varwof serve tsa

仅启动 TSA(独立运行)。

varwof serve ocsp

仅启动 OCSP 响应器(独立运行)。

varwof serve crl

启动 CRL 生成 + 分发。

varwof serve api

仅启动 REST API + Web UI。

varwof serve dns

启动 DNS 服务器(ACME DNS-01 + CERT + SRV 记录)。

用户与 RBAC 管理

varwof user add

varwof user add --username admin --password secret --role admin
varwof user add --username operator1 --password secret --role operator

角色:adminoperatorauditorreadonly

varwof user bind-operator-cert

将操作员证书绑定到用户(用于基于 mTLS 的 CA 作用域)。

varwof user bind-operator-cert --username operator1 --cert operator.pem

varwof token create

varwof token create --username admin --description "CI token" --expires 720h

信任联邦

varwof trust bridge issue

交叉签署 CA 以建立信任桥。

varwof trust bridge list

列出已有的信任桥。

varwof trust import

导入信任锚点。

注册机构

varwof ra submit

提交 CSR 以供审批。

varwof ra submit --cn server.example.com --san DNS:server.example.com --profile tls-server

varwof ra approve / varwof ra reject

批准或拒绝待处理的请求。

varwof ra approve --id <request-id>
varwof ra reject --id <request-id> --reason "insufficient documentation"

实用工具

varwof version

打印版本和构建信息。

varwof init-full

创建完整的 PKI 层级(根 CA + 8 个子 CA)。

varwof init-full \
  --root-name "TestCorp Root CA" \
  --org "TestCorp" \
  --country CN \
  --base-dir /opt/pki

varwof init-config

将示例配置打印到标准输出。

varwof db init

初始化数据库(创建 + 迁移到最新 schema)。

varwof db migrate

将 schema 迁移到目标版本。

varwof db migrate --to 2 --dry-run

varwof db backup

备份数据库。

varwof db backup --out backup.db

varwof benchmark

基准测试哈希和签名算法性能。

varwof report

生成合规报告 PDF。

varwof report --type soc2 --out report.pdf

varwof cpcps

生成 CP/CPS 合规文档(RFC 3647)。

varwof cpcps --out-dir docs/ --separate-cp

varwof completion

生成 shell 补全。

varwof completion bash > /etc/bash_completion.d/pki
varwof completion zsh > ~/.zfunc/_pki
varwof completion fish > ~/.config/fish/completions/pki.fish