带有证书的签名工具存储在本地计算机中
Posted
技术标签:
【中文标题】带有证书的签名工具存储在本地计算机中【英文标题】:signtool with certificate stored in local computer 【发布时间】:2015-01-15 21:14:07 【问题描述】:我无法让 signtool 找到我的证书。 pfx 文件用于签名,我已经通过直接指定 pfx 文件和密码来检查它。但是由于其他人可以访问代码存储库,我真的不想在那里存储证书+密码。
这就是为什么我在“受信任的根证书颁发机构”中的构建服务器(作为本地计算机,而不是每个用户)上安装了 pfx(来自 symantec)。这是因为 Jenkins 是使用本地系统帐户启动的。
这是我目前正在尝试的:
signtool sign /v /sm /s Root /n <thename> /t http://timestamp.digicert.com <thefile>
/sm / s Root - 这应该告诉signtool 切换到“本地机器”存储,对吧?并且 Root 应该指定“受信任的根证书颁发机构”?
/n - 这里我使用证书中的“颁发给”值,即公司名称。
我遇到了以下错误:
"SignTool Error: No certificates were found that met all the given criteria."
我今天浏览了这么多链接,试图找出我做错了什么。我已经在 mmc 中检查了本地计算机上的证书管理单元,并且证书正在“受信任的根证书颁发机构”中重新注册。
【问题讨论】:
【参考方案1】:试试这个命令:
signtool sign /v /sm /s My /n <thename> /t http://timestamp.digicert.com <thefile>
您很好地使用了/sm
选项,但是当您添加/s Root
时,您说signtool 应该在Computer store 中查找,但在Root authority 中查找。您也可以跳过 /s
参数,因为 /s My
是默认值。
有关更多信息,请参阅signtool 的文档。
【讨论】:
我切换到“我的”并在本地机器/个人中安装了证书,现在它可以工作了!谢谢!现在我遇到了另一个问题,无法访问时间戳服务器。当我从构建服务器上的命令行手动触发 signtool 时,它是可以访问的。但不是在构建服务器触发它时。 可能是代理问题?用户设置了代理,但系统帐户没有。以上是关于带有证书的签名工具存储在本地计算机中的主要内容,如果未能解决你的问题,请参考以下文章
从 IIS 上的 LocalComputer 存储“Store_1”获取证书