使用YubiKey 5 NFC签名EXE时遇SignerSign()失败错误求助
EV代码签名证书(YubiKey 5 NFC)签名EXE失败问题排查与解决
问题描述
从ssl.com购买EV签名证书,使用YubiKey 5 NFC完成证书加载及认证操作后,certmgr中可见该证书,但签名EXE时出现以下错误:
- 未安装YubiKey智能卡minidriver:
Error: SignerSign() failed.(-2146435068/0x80100004) - 安装驱动后:
Error: SignerSign() failed.(-2146435071/0x80100001),偶发UI提示The smartcard cannot perform the requested operation
已尝试的无效操作
- 重新创建认证并重新安装证书到YubiKey
- 重置YubiKey PIV至默认设置后重复证书安装流程
- 安装/卸载YubiKey智能卡minidriver,测试两种状态下的签名效果
- 通过命令行、YubiKey Manager及SSL.com Manager完成认证与证书安装
- 在Windows 11和Windows 10系统上重复所有操作
无效的旧参考方案
- Yubico 2020年Windows代码签名旧文:2023年后要求私钥在YubiKey PIV内生成,旧方案已不适用
- Yubico 2018年GitHub Issue中的方法:早于YubiKey 5发布,无实际帮助
针对性排查与解决步骤
确认PIV密钥槽匹配
确保EV证书安装在YubiKey的9c数字签名槽,而非9a身份认证等其他槽位。通过YubiKey Manager查看PIV槽的密钥与证书关联状态,槽位混用会导致签名权限不足。验证私钥生成方式
2023年后EV代码签名要求私钥必须在硬件安全模块内生成,禁止导入外部私钥。使用YubiKey Manager检查9c槽的私钥状态为Generated,若为Imported需重新在YubiKey内生成CSR,向ssl.com重新申请证书。调整签名工具参数
使用signtool签名时添加/sm参数指定智能卡,示例命令:signtool sign /fd SHA256 /sm /n "证书主体名称" /t http://timestamp.digicert.com your.exe仅保留最新版YubiKey官方智能卡minidriver,卸载其他第三方智能卡驱动避免冲突。
检查Windows智能卡服务
按下Win+R输入services.msc,确保Smart Card服务处于启动状态,启动类型设为Automatic。服务异常时重启后重新插拔YubiKey。验证证书链完整性
在certmgr中检查EV证书的证书链,确保根证书与中间证书均已正确安装,缺失中间证书会导致签名身份验证失败。测试智能卡连接状态
使用certutil -scinfo命令检测YubiKey状态,查看输出是否包含EV证书的私钥与证书信息。优先使用USB直连替代NFC,避免无线连接干扰。
内容的提问来源于stack exchange,提问作者Wazime
相关产品推荐
相关产品推荐

