Azure DevOps 云签名集成指南

这是有关如何将 Azure DevOps 与 eSigner CodeSignTool 集成以执行自动代码签名的指南。

CodeSignTool 是一个命令行实用程序,适用于云代码签名过程,并与各种 CI/CD 平台无缝集成。 它构成了 eSigner 的一部分:我们的远程签名服务提供了一种高效、安全和用户友好的代码签名方法。

SSL.com的 EV 代码签名 证书通过最高级别的验证帮助保护您的代码免受未经授权的篡改和破坏,并且只需 $ 249每年。 您也可以 大规模使用您的 EV 代码签名证书 使用 eSigner 在云中。

马上订购

环境变量

  • USERNAME: SSL.com 帐户用户名。 (必需的)
  • 密码: SSL.com 帐号密码 (必填)
  • 凭据_ID:用于签署证书的凭据 ID。 如果 credential_id 被省略并且用户只有一个 eSigner 代码签名证书,CodeSignTool 将默认使用该证书。 如果用户拥有多个代码签名证书,则此参数为必填项。 (必需的)
  • TOTP_秘密:OAuth TOTP 秘密。 您可以访问详细信息 https://www.ssl.com/how-to/automate-esigner-ev-code-signing (必填)
  • ENVIRONMENT_NAME :“测试”或“生产”环境。 (必需的)

 

输入

  • 输入文件路径:要签名的代码对象的路径。 (必需的)
  • 输出目录路径:将写入签名代码对象的目录。 如果省略 output_path,则在 -file_path 中指定的文件将被签名文件覆盖。

在 visualstudio.com 上创建一个项目

在代码编辑器上创建一个新的 .yml 文件

设置集成触发器和环境变量

持续集成触发器

扳机:

  - 没有

 

全局定义环境变量。 作业级别属性覆盖全局变量

变量:

  构建配置:“发布”

将作业分组为阶段

编写构建阶段的步骤。 一个阶段的所有作业必须在下一阶段执行之前完成。

阶段:

  – 阶段:构建

    # 当工作流运行时,这是记录的名称

    显示名称:构建

    工作:

      - 工作:

        池:

           在 Windows VM 上运行作业

          vmImage: 'windows 最新的'

        脚步:

           安装 Dotnet 6.0.x

        – 任务:UseDotNet@2

          displayName: '安装 .NET Core SDK'

          输入:

            版本:'6.0.x'

            performMultiLevelLookup: 真

            includePreviewVersions:true

       

            恢复 Dotnet 项目

        – 任务:DotNetCoreCLI@2

          显示名称:恢复

          输入:

            命令:'恢复'

 

           使用 Release 配置构建 dotnet 项目

        – 任务:DotNetCoreCLI@2

          显示名称:构建

          输入:

            命令:构建

            项目:HelloWorld.csproj

            参数:'--配置 $(buildConfiguration)'

 

           为已签名的工件创建目录

        – powershell:New-Item -ItemType Directory -Path ./artifacts

          displayName: '为工件创建目录'

 

           为签名包创建目录

        – powershell:New-Item -ItemType Directory -Path ./packages

          displayName: '为包创建目录'

 

           将工件复制到签名路径

        – powershell:复制项目 ./bin/Release/netcoreapp3.1/HelloWorld-0.0.1.dll -Destination ./packages/HelloWorld.dll

          displayName:“将构建的工件复制到包目录”

 

           保存工件以使用签名作业

        – 任务:PublishBuildArtifacts@1

          displayName: '保存要下载的签名工件'

          输入:

            发布路径:./packages/HelloWorld.dll

            工件名称:HelloWorld.dll

编写 Sign 阶段的步骤

- 阶段:标志

    # 当工作流运行时,这是记录的名称

    显示名称:标志

    工作:

    - 工作:

      池:

         在 Ubuntu 虚拟机上运行作业

        vmImage:“Ubuntu 最新”

      脚步:

         为已签名的工件创建目录

      – 脚本:mkdir -p ./artifacts && mkdir -p ./packages

        displayName:“为工件和包创建的目录”

 

         下载要签名的工件

      – 任务:DownloadPipelineArtifact@2

        输入:

          工件:HelloWorld.dll

          下载路径:./packages

 

         安装 Docker 17.09.0-ce

      – 任务:DockerInstaller@0

        显示名称:Docker 安装程序

        输入:

          码头工人版本:17.09.0-ce

          发布类型:稳定

 

         Docker 拉取 CodeSigner Docker 镜像

      – 脚本:docker pull ghcr.io/sslcom/codesigner:latest

        displayName: 'Docker 拉取 CodeSigner Docker 映像'

         使用 CodeSigner 泊坞窗图像签署工件

      – 脚本:docker run -i –rm –dns 8.8.8.8 –network host –volume $PWD/packages:/codesign/examples –volume $PWD/artifacts:/codesign/output

                -e 用户名=$(用户名) -e 密码=$(密码) -e CREDENTIAL_ID=$(CREDENTIAL_ID) -e TOTP_SECRET=$(TOTP_SECRET)

如果密码有特殊字符,则必须用引号引起来。

                -e ENVIRONMENT_NAME=$(ENVIRONMENT_NAME) ghcr.io/sslcom/codesigner:最新标志-input_file_path=/codesign/examples/HelloWorld.dll

                -output_dir_path=/代码设计/输出

        displayName: '使用 CodeSigner 泊坞窗图像签署工件'

 

         保存已签名的工件以供下载

      – 任务:PublishBuildArtifacts@1

        displayName: '保存已签名的工件以供下载'

        输入:

          发布路径:./artifacts/HelloWorld.dll

          工件名称:HelloWorld.dll

创建一个新的 .gitignore 文件

输入:

箱子

OBJ

.vscode

在消息栏上,输入 Created pipeline.yml 并单击 承诺 按键

SSL.com的 EV 代码签名 证书通过最高级别的验证帮助保护您的代码免受未经授权的篡改和破坏,并且只需 $ 249每年。 您也可以 大规模使用您的 EV 代码签名证书 使用 eSigner 在云中。

马上订购

继续点击 同步更改 按键

继续访问 visualstudio.com 并单击 回购 在仪表板上

刷新页面可以看到yml文件

点击 管道 在仪表板上

接下来,单击 创建管道

单击 Azure 存储库 Git

选择您的 YAML 文件

点击 变量 按钮后面 新变量

放置每个环境变量的值,然后单击 OK 按键

单击 + 号继续添加每个变量

放入所有变量后,继续创建您的管道

运行您的管道

点击 管道 在仪表板上。 单击管道上的三个点(更多选项)。 点击 运行管道。 最后,单击 运行 按钮。

点击 Build 开始构建阶段

检查构建阶段的每个作业是否成功

点击旁边的下拉箭头 工作 查看每个构建作业的状态

单击启动 Sign 阶段 工作

检查签名过程中的每一步是否成功

仔细检查构建和签名阶段是否成功

你可以参考 SSL.com Github 存储库,其中包含 docker 镜像的源代码并描述了如何使用它: https://github.com/SSLcom/ci-images 

示例 Azure DevOps 管道

查看我们创建的示例 Azure DevOps 管道 github.com/SSLcom/codesigner-azuredevops-样本

其他远程签名集成指南

需要定制解决方案? 

凭借我们的专业知识和五星级支持人员,我们已准备好并愿意与您合作制定定制解决方案或企业级大批量签约折扣。 填写下面的表格,我们会与您联系。

Twitter
Facebook
LinkedIn
Reddit
电子邮箱

保持信息灵通和安全

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

我们希望收到您的反馈

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