如何安全地存储.pfx密码以在MSBuild中使用?

时间:2013-07-17 21:15:12

标签: msbuild password-protection pfx

我需要将证书签名添加到我的构建中。下面是我编写的工作脚本示例,但它包含.pfx文件的密码。我无法在构建脚本中保留密码。什么是最佳实践"或者你会在这种情况下使用黑客?

<ItemGroup Label="SignFiles">
  <SignFilesInclude="$(FileLocation)\**\*.exe"/>
</ItemGroup>

<Exec Command="$(SignTool) sign /v /ac C:\MSCV-VSClass3.cer /f C:\Certificate.pfx /p Password /t http://timestamp.verisign.com/scripts/timestamp.dll %(SignFiles.Identity)"/>

在谷歌搜索之后,我在多个地方读到,一旦你第一次使用密码运行脚本,.pfx就存储在证书存储中,之后在构建脚本中不需要密码。这是有效的,但是我想确保这是最好的方法或更好的方法,有一种方法可以避免将密码放在脚本中。

1 个答案:

答案 0 :(得分:19)

将.pfx文件导入Windows证书管理器,以获取构建时使用的用户帐户。然后使用signtool的/ sha1开关选择正确的证书,不需要密码。

  1. 以构建用户身份登录
  2. 运行certmgr.msc
  3. 右键单击“证书” - “当前用户/个人/证书”,然后选择“所有任务/导入...”
  4. 选择.pfx文件,输入密码,然后单击“下一步”并完成
  5. 双击导入的证书
  6. 在“详细信息”页面中,指纹算法应为sha1
  7. 复制指纹,看起来像12 34 56 78 90 ab cd ef 12 34 56 78 90 ab cd ef 12 34 56 78
  8. signtool /sha1 1234567890abcdef1234567890abcdef12345678 /t http://timestamp.verisign.com/scripts/timestamp.dll %(SignFiles.Identity)
  9. 第8步不会要求输入密码。