用 Yubikey 错误签署 exe 错误:SignerSign() 失败

问题描述 投票:0回答:1

我从 ssl.com 购买了 EV 签名。
我有 Yubikey 5 NFC,所以我尝试将签名以及所有证明和其他内容加载到我的 Yubikey 中。

https://www.ssl.com/how-to/key- Generation-and-attestation-with-yubikey/

一切看起来都很好。

certmgr
显示证书。

但是当尝试签署 exe 时,我收到下一个错误:

"Error: SignerSign() failed." (-2146435068/0x80100004)

为了解决这个问题,我尝试安装 Yubikey 智能卡 minidriver
然后我开始出现下一个错误:

"Error: SignerSign() failed." (-2146435071/0x80100001)

有时我开始收到 UI 错误:

The smartcard cannot perform the requested operation
如 StackOverflow 详细问题

所示

(真正的进步在这里🤦u200d♂️)

我为解决这个问题所做的事情:

  1. 在 Yubikey 上重新创建证明并重新安装签名
  2. 重置 Yubikey PIV 并将所有内容恢复为默认值,包括重复步骤#1
  3. 安装/卸载 Yubikey 智能卡微型驱动程序,并尝试在带或不带微型驱动程序的情况下使用 Yubikey。
  4. 尝试从命令行、Yubikeymanager 和 ssl.com 管理器证明/安装签名。
  5. 在 Windows 11 和 Windows 10 上尝试了此处的所有步骤

如果您认为我错过了什么,请告诉我。

死胡同列表

  • 在关于 2020 年起在 Windows 中进行协同设计的 Yubikey 旧文章 中,它提到了 pfx 文件,并且自 2023 年起,应在 Yubikey PIV 内创建私钥,因此本文不相关。
  • 尝试了 Yubico GitHub issues 中的各种方法,没有任何帮助,它结束于 2018 年,也就是 6 年前 Yubikey 5 发布之前,https://github.com/Yubico/yubikey-piv-manager/issues/24
code-signing signtool yubico yubikey
1个回答
0
投票

所以我设法解决了这些恼人的错误:
首先为程序员创建了一个巫毒娃娃,他们决定给出这些神秘的错误而不是直接的解释。 并且每天都坚持!

所以出现这个问题的原因如下:

ssl.com 为您提供电子签名器,并将其 HSM 密钥公开为

.der
文件。

因此,如果您进行证明并下载

.der
文件而不向他们发送电子邮件,请等待他们回复他们更换了证书
.der
并确保下载 正确的文件,您最终将下载一个
HSM
或旧
.der
文件

为什么他们的用户体验让你做这么愚蠢的事情,甚至没有给你适当的警告?
只有天知道!

因此,要解决我的问题,我必须执行以下步骤:

  1. 安装 Yubikey 迷你驱动程序
  2. 进行证明并要求 SSl.com 支持人员创建新证书
  3. 等待(!!!)直到新证书颁发,因为即使他们的 UI 允许您下载证书,但它是旧的 HSM
  4. 收到证书后,将其导入您的 Yubikey,然后:
    🥁🥁🥁🥁🥁🥁🥁
    A。弹出 Yubikey
    b.打开cmd,输入
    certmgr.msc

    C。导航至个人>证书
    d.如果代码签名证书出现,请确保您正在删除它(它应该在您的 Yubikey 上,这样不会造成任何损害)
    e.再次插入您的 Yubikey。

现在签名应该可以正常工作,而不会出现所有这些神秘错误。

只有上帝知道为什么在 Microsoft 中编写错误消息的开发人员决定使用:

Error: SignerSign() failed." (-2146435068/0x80100004)
,而不是“失踪司机”

Error: SignerSign() failed." (-2146435071/0x80100001)
而不是 Yubikey 上缺少有效签名或签名错误

The smartcard cannot perform the requested operation
而不是“检查您是否将正确的签名加载到智能卡中,如果是,请弹出智能卡,从位于 certmgr.msc
 的证书管理器中删除签名,然后再次插入”

如果编写这些神秘错误的开发人员曾经读过这篇文章:

A。因为我的巫毒娃娃,你度过了非常糟糕的一周,但我原谅你,所以我不会再使用它了
b.错误消息应该易于理解,并应引导用户找到解决方案!!!!

© www.soinside.com 2019 - 2024. All rights reserved.