用途:为已构建的 .msix 或 .exe 进行代码签名,并生成、安装、管理签名证书,适用于 MSIX 本地测试签名、分发签名以及 Azure 云签名。
主要能力:winapp cert generate 生成自签名开发证书(默认密码为 password,可用 --password 覆盖,默认输出 devcert.pfx,可用 --output、--valid-days、--if-exists overwrite/skip 控制);winapp cert install 将证书加入本机受信任根存储(需管理员权限,用 --force 强制重装);winapp sign 对 MSIX 或 exe 签名,可配合 --password 与 --timestamp;winapp az-sign 通过 Azure Trusted Signing 云签名,支持交互式或 --subscription、--resource-group、--account、--profile 全指定,也可用 --metadata-file 复用元数据。
关键概念:证书中的 publisher 必须与 Package.appxmanifest 的 Publisher 属性完全一致,生成时用 --manifest 可自动匹配;不支持多值 RDN 与反斜杠。生成的自签名证书仅用于本地测试,生产分发需从受信任 CA 获取证书。.msixbundle 只需对 bundle 签名一次。
用法要点:生成证书后需以管理员身份运行 winapp cert install 信任证书,再签名;生产签名建议加 --timestamp http://timestamp.digicert.com。winapp package 传 --cert 可自动签名,也可用 winapp package ./dist --generate-cert --install-cert 一步完成。az-sign 需 Azure Code Signing 账户与证书配置文件及相应角色,并需机器级 x64 .NET 8+ 运行时与 VC++ 可再发行组件;认证走 DefaultAzureCredential,CI 中可设 AZURE_TENANT_ID/CLIENT_ID/CLIENT_SECRET 或使用 OIDC。最小权限 CI 可传全部四个资源参数避免枚举。
限制:自签名证书默认密码公开,仅限本机构建使用;证书安装会修改机器存储并跨重启保留;签名验证需证书受信任。更多选项见 winapp <command> --help 或 winapp --cli-schema。