使用Azure DevOps进行代码签名

本教程介绍如何使用Azure Key Vault中存储的证书对Azure DevOps进行代码签名。 要遵循这些说明,您将需要:

SSL.com 的 eSigner 云代码签名服务现在可以与流行的 CI/CD 工具轻松集成, 包括 Azure DevOps,用于自动代码签名。 电子签名者 让您可以从任何地方方便地将全球可信的数字签名和时间戳添加到您的代码中,无需 USB 令牌、HSM 或其他特殊硬件。

请参阅本文,获取有关如何将 eSigner 与 Azure DevOps 集成的指南: Azure DevOps 云签名集成指南.

注册Azure应用程序

首先,您需要注册一个新的Azure应用程序,以便可以连接到Key Vault进行签名。

  1. 登录到 Azure门户.
    登录到Azure
  2. 导航 Azure Active Directory。 (点击 更多的服务 如果看不到Azure Active Directory图标。)
    Azure Active Directory
  3. 点击 应用注册,在左栏中。
    应用注册
  4. 点击 新注册.
    新注册
  5. 给您的应用一个 名字 并单击 注册 按钮。 将其他设置保留为默认值。
    注册申请
  6. 您的新应用程序已注册。 复制并保存显示的值 应用程序(客户端)ID,因为您稍后需要它。
    应用程序(客户端)ID

创建客户端机密

接下来,生成一个客户端机密,该客户端机密将在签名时用作凭据。

  1. 点击 证书和秘密 在左侧菜单中。
    证书和秘密
  2. 点击 新客户机密.
    新客户的秘密
  3. 给你的客户一个秘密 产品描述,根据需要设置到期时间,然后点击 地址 按钮。
    添加客户机密
  4. 复制 您的新客户秘密 立即 并将其保存在安全的地方。 下次刷新页面时,此值将被屏蔽并且无法检索。
    复制秘密价值

在密钥保管库中启用访问权限

现在,您需要在Azure Key Vault中启用对应用程序的访问。

  1. 导航到包含要用于签名的证书的Key Vault,然后单击 访问政策 链接。
    访问政策
  2. 点击 添加访问策略.
    访问政策
  3. 关键权限,启用 VerifySign, GetList.
    关键权限
  4. 秘密权限,启用 GetList.
    秘密权限
  5. 证书权限,启用 GetList.
    证书权限
  6. 点击 未选择 链接,在 选择校长,然后使用搜索字段找到并选择您在上一节中创建的应用程序。
    选择校长
  7. 点击 选择 按钮。
    选择按钮
  8. 点击 地址 按钮。
    添加按钮
  9. 点击 保存.
    保存
  10. 您的访问策略已设置。
    访问政策

配置DevOps构建

现在您可以配置构建。 在Azure DevOps中打开您的项目。

Azure DevOps项目

将应用程序凭据存储为变量

您可以将应用程序ID和客户端密钥直接包含在YAML管道文件中,但是如果将它们作为变量存储在DevOps中,则会更加安全。

  1. 点击 管道.
    管道
  2. 点击 自学资料库.
    自学资料库
  3. 点击 +变量组.
    添加变量组
  4. 给您的变量组起一个名字。
    添加名称
  5. 点击 地址.
    地址
  6. 输入您的应用程序ID的变量名,然后粘贴该值。 完成后,单击锁以加密变量。
    应用程序ID变量
  7. 重复该过程,为您的客户机密添加变量。
    客户机密变量
  8. 点击 保存.
    保存
  9. 在管道中链接变量组。 (将VARIABLE-GROUP替换为实际变量组的名称。)
    变量:-组:“变量组”

添加管道步骤以安装Azure Sign Tool

Azure登录工具 是一个开源实用程序,提供 签名工具 存储在Azure Key Vault中的证书和密钥的功能。 在管道中添加以下步骤以安装Azure Sign Tool:

-任务:DotNetCoreCLI @ 2输入:命令:'custom'自定义:'tool'参数:'install --global azuresigntool'displayName:安装AzureSignTool

将Azure Sign工具命令添加到管道

  1. 现在,您可以添加任务以将代码签名到管道中。 您将需要以下信息:
    • 您一站式解决方案 密钥库URI (在Azure门户中可用):
      密钥库URI
    • 密钥保管箱中证书的友好名称:
      证书名称
    • 您一站式解决方案 应用程序ID客户机密 变量名:
      变量名
  2. 将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:签名代码
  3. 如果签名成功,您应该看到如下输出:
    信息: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 适用于企业代码签名。

马上订购

订阅 SSL.com 的时事通讯

不要错过SSL.com上的新文章和更新

保持信息灵通和安全

SSL.com 是网络安全领域的全球领导者, PKI 和数字证书。注册以接收最新的行业新闻、提示和产品公告 SSL.com.

我们希望收到您的反馈

参加我们的调查,让我们知道您对最近购买的想法。