在 Ubuntu 22.04(SafeNet 身份验证客户端)上使用 Sectigo 硬件令牌对 Windows EXE 进行代码签名 n使用 osslsigncode

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

我可以使用 SAC 和

singtool.exe
在 Windows 上签署我的 Windows EXE。但这需要一台我无法轻松访问的 Windows 计算机。我主要在 Linux 上工作,Sectigo 支持人员告诉我这个过程在 Linux 上是可行的,但我遇到了问题。

我可以运行 SAC 并查看证书等。我已使用

pkcs11-tool
成功检查了证书:

pkcs11-tool --module /usr/lib/pkcs11/libeToken.so --login --list-objects

我发现了一些对

osslsigncode
的引用,但它们都在命令行中使用证书和密钥。

当 OV 证书捆绑包和私钥位于 Sectigo 的硬件令牌上时,我应该使用哪些工具和/或命令在 Ubuntu 上实际签署 Windows EXE?

code-signing pkcs#11 safenet
1个回答
0
投票

我最终使用各种工具测试了各种方法:

pkcs11-tool
p11tool
p11-kit
。步骤如下:

运行

p11tool --provider=/usr/lib/libeTPkcs11.so --list-all
。这应该列出令牌的实际 URI。其他工具只提供其他证书的 URI,但不提供我的硬件令牌。

接下来,我不得不纠结使用哪个

pkcs11engine
。我尝试了这些帖子和其他地方提到的几个,但出现了错误。我终于找到了
pkcs11.so
我的一张照片:

/snap/core22/858/usr/lib/x86_64-linux-gnu/engines-3/pkcs11.so

然后我必须构建命令行。我一开始只使用 URI 作为密钥,但这不起作用。所以我用这个命令找到了证书ID,

pkcs11cert

pkcs11-tool --module /usr/lib/pkcs11/libeToken.so --login --list-objects --id 01

ID 通过其他命令输出显示,但以带有冒号的形式显示,因此我不确定如何使用它(例如,

ID: xx:xx:xx:xx:xx:xx:xx:xx
)。

我终于登陆了这个命令行:

osslsigncode sign -askpass -verbose -h sha256 \
-pkcs11engine /snap/core22/858/usr/lib/x86_64-linux-gnu/engines-3/pkcs11.so \
-pkcs11module /lib/libeToken.so \
-t http://timestamp.sectigo.com \
-pkcs11cert xxxx \
-key "pkcs11:model=xxxx;manufacturer=xxxx;serial=xxxx;token=xxxx;object=xxxx;type=cert" \
-in /path/to/executable_UNSIGNED.exe \
-out /path/to/executable_LINUX_SIGNED.exe

我有点厌倦了使用那个快照

pkcs11engine
,但它正在工作。我将继续完善这个流程,但目前我对进展感到满意。

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