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

如何安全地存储要在MSBuild中使用的.pfx密码?,msbuild,code-signing,password-protection,pfx,signtool,Msbuild,Code Signing,Password Protection,Pfx,Signtool,我需要将证书签名添加到我的生成中。下面是我编写的工作脚本的一个示例,不过它包含了.pfx文件的密码。我无法在构建脚本中保留密码。在这种情况下,您会使用哪些“最佳实践”或黑客 <ItemGroup Label="SignFiles"> <SignFilesInclude="$(FileLocation)\**\*.exe"/> </ItemGroup> <Exec Command="$(SignTool) sign /v /ac C:\MSCV-VS

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

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

  • 以生成用户身份登录
  • 运行
    certmgr.msc
  • 右键单击证书-当前用户/个人/证书,然后选择所有任务/导入
  • 选择.pfx文件,输入密码,然后单击下一步并完成
  • 双击导入的证书
  • 在详细信息页面中,指纹算法应为sha1
  • 复制指纹,它看起来像
    12 34 56 78 90 ab cd ef 12 34 56 78 90 ab cd ef 12 34 56 78
  • signtool/sha1 1234567890abcdef1234567890abcdef12345678/thttp://timestamp.verisign.com/scripts/timestamp.dll %(SignFiles.Identity)

  • 步骤8不会要求输入密码。

    我相信
    signtool
    命令行示例会忽略
    sign
    命令。它应该是
    signtool sign/sha/T文件