本教程介绍如何使用Azure Key Vault中存储的证书对Azure DevOps进行代码签名。 要遵循这些说明,您将需要:
SSL.com 的 eSigner 云代码签名服务现在可以与流行的 CI/CD 工具轻松集成, 包括 Azure DevOps,用于自动代码签名。 电子签名者 让您可以从任何地方方便地将全球可信的数字签名和时间戳添加到您的代码中,无需 USB 令牌、HSM 或其他特殊硬件。
请参阅本文,获取有关如何将 eSigner 与 Azure DevOps 集成的指南: Azure DevOps 云签名集成指南.
请参阅本文,获取有关如何将 eSigner 与 Azure DevOps 集成的指南: Azure DevOps 云签名集成指南.
注册Azure应用程序
首先,您需要注册一个新的Azure应用程序,以便可以连接到Key Vault进行签名。
- 登录到 Azure门户.
- 导航 Azure Active Directory。 (点击 更多的服务 如果看不到Azure Active Directory图标。)
- 点击 应用注册,在左栏中。
- 点击 新注册.
- 给您的应用一个 姓名 并单击 注册 按钮。 将其他设置保留为默认值。
- 您的新应用程序已注册。 复制并保存显示的值 应用程序(客户端)ID,因为您稍后需要它。
创建客户端机密
接下来,生成一个客户端机密,该客户端机密将在签名时用作凭据。
- 点击 证书和秘密 在左侧菜单中。
- 点击 新客户机密.
- 给你的客户一个秘密 描述,根据需要设置到期时间,然后点击 添加 按钮。
- 复制 值 您的新客户秘密 立即 并将其保存在安全的地方。 下次刷新页面时,此值将被屏蔽并且无法检索。
在密钥保管库中启用访问权限
现在,您需要在Azure Key Vault中启用对应用程序的访问。
- 导航到包含要用于签名的证书的Key Vault,然后单击 访问政策 链接。
- 点击 添加访问策略.
- 下 关键权限,启用
Verify
,Sign
,Get
及List
.
- 下 秘密权限,启用
Get
和List
.
- 下 证书权限,启用
Get
和List
.
- 点击 未选择 链接,在 选择校长,然后使用搜索字段找到并选择您在上一节中创建的应用程序。
- 点击 选择 按钮。
- 点击 添加 按钮。
- 点击 已保存.
- 您的访问策略已设置。
配置DevOps构建
现在您可以配置构建。 在Azure DevOps中打开您的项目。
将应用程序凭据存储为变量
您可以将应用程序ID和客户端密钥直接包含在YAML管道文件中,但是如果将它们作为变量存储在DevOps中,则会更加安全。
- 点击 管道.
- 点击 自学资料库.
- 点击 +变量组.
- 给您的变量组起一个名字。
- 点击 添加.
- 输入您的应用程序ID的变量名,然后粘贴该值。 完成后,单击锁以加密变量。
- 重复该过程,为您的客户机密添加变量。
- 点击 已保存.
- 在管道中链接变量组。 (将VARIABLE-GROUP替换为实际变量组的名称。)
变量:-组:“变量组”
添加管道步骤以安装Azure Sign Tool
Azure登录工具 是一个开源实用程序,提供 签名工具 存储在Azure Key Vault中的证书和密钥的功能。 在管道中添加以下步骤以安装Azure Sign Tool:
-任务:DotNetCoreCLI @ 2输入:命令:'custom'自定义:'tool'参数:'install --global azuresigntool'displayName:安装AzureSignTool
将Azure Sign工具命令添加到管道
- 现在,您可以添加任务以将代码签名到管道中。 您将需要以下信息:
- 将Azure Sign工具调用添加到您的管道中。 用您的实际值替换ALL-CAPS中显示的值:
-任务:CmdLine @ 2输入:脚本:AzureSignTool标志-kvu“ KEY-VAULT-URI” -kvi“ $(APPLICATION-ID-VAR)” -kvs“ $(CLIENT-SECRET-VAR)” -kvc证书名称-tr“ http://ts.ssl.com” -td sha256“ FILE-TO-SIGN” displayName:签名代码
- 如果签名成功,您应该看到如下输出:
信息:AzureSignTool.Program [0] =>文件:D:\ a \ 1 \ s \ x64 \ Debug \ HelloWorld.exe签名文件D:\ a \ 1 \ s \ x64 \ Debug \ HelloWorld.exe信息:AzureSignTool。程序[0] =>文件:D:\ a \ 1 \ s \ x64 \ Debug \ HelloWorld.exe文件D:\ a \ 1 \ s \ x64 \ Debug \ HelloWorld.exe的签名成功完成。
SSL.com的 EV 代码签名 证书通过最高级别的验证帮助保护您的代码免受未经授权的篡改和破坏,并且只需 $ 249每年。 您也可以 大规模使用您的 EV 代码签名证书 使用 eSigner 在云中。 凭借其自动化选项,eSigner 适用于企业代码签名。