本指南仅适用于1年2023月XNUMX日之前颁发的IV和OV代码签名证书。 从1年2023月XNUMX日开始,SSL.com 的组织验证 (OV) 和个人验证 (IV) 代码签名证书已通过联邦信息处理标准 140-2 (FIPS 140-2) USB 令牌或通过我们的 eSigner 云代码签名服务颁发。 本次变更符合规定 符合证书颁发机构/浏览器 (CA/B) 论坛的新密钥存储要求,以提高代码签名密钥的安全性。
本教程将向您展示如何使用存储在Azure Key Vault中的代码签名证书和私钥从Windows命令行对文件签名。 要遵循这些说明,您将需要:
什么是Azure Sign工具?
Azure登录工具 是一个开源实用程序,提供 签名工具 存储在Azure Key Vault中的证书和密钥的功能。 您可以在Windows PowerShell中使用以下命令安装Azure Sign Tool(要求 .NET开发工具包):
dotnet tool install --global AzureSignTool
步骤1:注册新的Azure应用程序
首先,您需要注册一个新的Azure应用程序,以便可以连接到Key Vault进行签名。
- 登录到 Azure门户.
- 导航 Azure Active Directory。 (点击 更多的服务 如果看不到Azure Active Directory图标。)
- 点击 应用注册,在左栏中。
- 点击 新注册.
- 给您的应用一个 名字 并单击 注册 按钮。 将其他设置保留为默认值。
- 您的新应用程序已注册。 复制并保存显示的值 应用程序(客户端)ID,因为您稍后需要它。
- 点击 认证.
- 下 高级设置,设定 允许公共客户流 至
Yes
.
- 点击 优惠.
步骤2:建立客户机密
接下来,生成一个客户端机密,该客户端机密将在签名时用作凭据。
- 点击 证书和秘密 在左侧菜单中。
- 点击 新客户机密.
- 给你的客户一个秘密 产品描述,根据需要设置到期时间,然后点击 地址 按钮。
- 复制 值 您的新客户秘密 立即 并将其保存在安全的地方。 下次刷新页面时,此值将被屏蔽并且无法检索。
步骤3:在Key Vault中启用访问
现在,您需要在Azure Key Vault中启用对应用程序的访问。
- 导航到包含要用于签名的证书的Key Vault,然后单击 访问政策 链接。
- 点击 添加访问策略.
- 下 关键权限,启用
Sign
.
- 下 证书权限,启用
Get
.
- 点击 未选择 链接,在 选择校长,然后使用搜索字段找到并选择您在上一节中创建的应用程序。
- 点击 选择 按钮。
- 点击 地址 按钮。
- 点击 优惠.
- 设置了访问策略,您就可以开始对文件进行签名了。
步骤4:签署档案
现在您终于可以签署一些代码了!
- 您将需要以下信息:
- 以下是PowerShell中用于使用Azure Sign Tool签名和时间戳文件的示例命令。 用您的实际信息替换ALL CAPS中的值:
azuresigntool标志-kvu密钥-VAULT-URI -kvc证书名称-kvi应用程序客户端ID -kvs客户秘密-tr http://ts.ssl.com/ -td sha256可执行路径
请注意: 默认情况下,SSL.com 支持来自 ECDSA 密钥的时间戳。
如果您遇到此错误:The timestamp certificate does not meet a minimum public key length requirement
,您应该联系您的软件供应商以允许来自 ECDSA 密钥的时间戳。
如果您的软件供应商无法允许使用普通端点,您可以使用此旧版端点http://ts.ssl.com/legacy
从 RSA 时间戳单元获取时间戳。 - 如果签名成功,您应该看到如下所示的输出(不成功的签名将不会产生任何输出):
信息:AzureSignTool.Program [0] =>文件:test.exe签名文件test.exe信息:AzureSignTool.Program [0] =>文件:test.exe文件test.exe签名成功完成。 信息PS C:\ Users \ Aaron Russell \ Desktop>
- 有关新数字签名的详细信息将在文件属性中提供:
请注意: Azure Sign Tool的作者还提供了一个 演练 在Azure DevOps中使用该工具。
SSL.com的 EV 代码签名 证书通过最高级别的验证帮助保护您的代码免受未经授权的篡改和破坏,并且只需 $ 249每年。 您也可以 大规模使用您的 EV 代码签名证书 使用 eSigner 在云中。 凭借其自动化选项,eSigner 适用于企业代码签名。