gpt4 book ai didi

windows - 为什么 signtool.exe 仅在以管理员身份运行时才能找到证书?

转载 作者:可可西里 更新时间:2023-11-01 09:27:23 27 4
gpt4 key购买 nike

我正在设置一台新的开发笔记本电脑,并安装了一个自行颁发的代码签名证书。我可以在当前用户的个人证书下的 certmgr 中看到它。

当我尝试从 Visual Studio 2017 的开发人员命令提示构建时,我得到:
错误:SignTool 错误:找不到满足所有给定条件的证书。

这在我的旧笔记本电脑上一直运行良好。

我发现如果我在以管理员身份启动后从命令提示符运行相同的构建,那么 signtool 会成功并且可以找到证书。

当我们安装新笔记本电脑时,3/4 的同事都遇到过这种情况。一个人没问题,可以在不以管理员身份运行的情况下签名。在我们的旧笔记本电脑上,我们从来不需要以管理员身份运行。

我尝试使用谷歌搜索来查找可能的原因,因为我不知道是否以管理员身份运行应该对此有任何影响。我还没有找到任何关于这个问题的引用。

我们如何在不以管理员身份运行的情况下使用 signtool.exe?

当不以管理员身份运行时,它似乎处于私钥过滤步骤,我希望被选中的证书被过滤掉:

**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.9.12
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************

C:\>signtool sign /v /debug /ph /i "<issuedby>" /fd sha256 /td sha256 "C:\TestSign.dll"

The following certificates were considered:
Issued to: Scott Langham
Issued by: <issuedby>
Expires: Sun Sep 25 09:54:55 2022
SHA1 hash: <a_hash>

Issued to: Scott Langham
Issued by: <issuedby_somethingelse>
Expires: Wed May 13 15:51:14 2020
SHA1 hash: <b_hash>

After EKU filter, 1 certs were left.
After expiry filter, 1 certs were left.
After Issuer Name filter, 1 certs were left.
After Private Key filter, 0 certs were left.
SignTool Error: No certificates were found that met all the given criteria.

我已确保我使用的 signtool.exe 版本与从事此工作的同事使用的版本相同 (10.0.18362.1)。我已经能够发现我们系统之间的任何其他差异。

最佳答案

我今天遇到了这个问题,现在我可以通过命令行运行 signtool.exe,而无需提升到管理员权限。

  • 运行“mmc”并添加“证书”管理单元
  • 选择正确的 key 存储位置
    • (我的在本地计算机中,所以我在这里选择“计算机帐户”)
  • 查找并选择证书
  • 右键单击证书,选择“所有任务”>“管理私钥...”

enter image description here

  • 在“私钥权限”对话框中,添加您的用户帐户,然后给自己“完全控制”。您现在可以使用普通的命令提示符进行签名。

Managing Certificate Permissions

  • 注意:如果您使用构建机器,请对执行构建的帐户执行上述步骤。

关于windows - 为什么 signtool.exe 仅在以管理员身份运行时才能找到证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56563732/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com