15

我需要将证书签名添加到我的构建中。下面是我编写的工作脚本示例,但它包含 .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 就会存储在证书存储中,之后在构建脚本中就不需要密码了。这可行,但是我想确保这是最好的方法,或者更好的是,有一种方法可以避免将密码放入脚本中。

4

1 回答 1

22

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

  1. 以构建用户身份登录
  2. certmgr.msc
  3. 右键单击Certificates - Current User / Personal / Certificates,然后选择All Tasks / Import ...
  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)

并且第 8 步不会要求输入密码。

于 2013-08-30T12:51:19.677 回答