在Azure Pipelines中进行代码签名而不在代码库中暴露任何信息

50次阅读
没有评论

问题描述

在使用Azure Pipelines进行CI(持续集成)时,希望能够进行自动的代码签名,但又不希望在代码库中暴露任何与代码签名相关的信息。用户已经采取了一些步骤,包括将证书添加到安全文件存储中,安装了代码签名扩展,并创建了任务变量并标记为机密。

解决方案

根据用户提供的信息,你已经做得非常正确。你已经将证书和密码存储在一个安全的位置,只有你能够访问。假设你没有给其他人在Azure租户上分配权限,并且不会盲目接受更改azure-pipelines.yml的拉取请求,那么你的做法是正确的。

如果你感到有些担心,你可以创建一个使用私有代码库的第二个流水线。当前一个流水线成功完成时,触发第二个流水线。然而,在我看来,你应该仔细考虑你所面临的风险,并权衡将两个流水线绑定在一起所带来的复杂性和脆弱性。

请注意,这只是一种解决方案,你可以根据自己的需求和风险评估来选择最适合你的方法。

请注意以下操作注意版本差异及修改前做好备份。

解决方案步骤

  1. 打开你的Azure Pipelines配置文件azure-pipelines.yml
  2. 在文件中添加以下代码,用于执行代码签名任务:
- task: codesigning@2
  inputs:
    secureFileId: '$(certName)'
    signCertPassword: '$(certPass)'
    files: '**/*.exe'
    timeServer: 'http://timestamp.digicert.com'
    hashingAlgorithm: 'SHA256'

在上面的代码中,我们使用了codesigning@2任务来执行代码签名。你需要将secureFileIdsignCertPassword替换为你在Azure Pipelines中设置的任务变量。

  1. 保存并提交你的azure-pipelines.yml文件。

通过以上步骤,你已经成功将代码签名过程添加到了Azure Pipelines中,同时没有在代码库中暴露任何与代码签名相关的信息。

请注意,这只是一种最佳实践,你可以根据自己的需求和风险评估来选择最适合你的方法。

总结

在Azure Pipelines中进行代码签名而不在代码库中暴露任何信息是一种很好的做法。通过将证书和密码存储在安全的位置,并谨慎管理你的Azure租户权限,你可以确保代码签名过程的安全性。如果你感到有些担心,你可以考虑创建一个使用私有代码库的第二个流水线,但请注意这可能会增加复杂性和脆弱性。根据你的需求和风险评估,选择最适合你的方法。

正文完