如何使用GoDaddy中的.SPC或.PEM文件签署代码(.EXE文件)(使用Ubuntu)?

我已经看到了很多有关这个问题的问题和答案,我已经尝试了所有这些都没有成功。

Godaddy只提供给我.SPC和.PEM文件。 当然,我有我的.key文件和我用来请求证书的.csr。

以前(有其他公司提供的其他代码签名证书),我有一个pfx文件,我用它来创build.spc和.der文件,最后我用osslsigncode签署我的可执行文件,但是这不起作用。

目前,当我尝试从.pem文件创build一个.der文件时:

openssl rsa -outform der -in cert.pem -out cert.der 

我得到以下错误:

无法加载私钥139732378019488:错误:0906D06C:PEM例程:PEM_read_bio:没有启动行:pem_lib.c:696:期望:任何私钥

所以我做的是将我的.key文件添加到我的.pem文件中:

 cat myKey.key cert.pem > cert_key.pem 

通过这种方式,openssl创build.der文件,我可以使用osslsigncode,godaddy提供的.spc文件和创build的.der文件签名可执行文件:

 osslsigncode -spc gd.spc -key cert.der -in unsigned_exe.exe -out signed_exe.exe 

在这一点上的exe文件成功签署,但是当我在Windows上testing它有错误,因为它不能识别签名。 检查文件属性我发现代码签名者是“Go Daddy Class 2证书颁发机构”,证书详细信息是“没有签名存在于主题中”

我也尝试过不能做同样的过程描述,但使用包括我的.key和我公司的证书(最后一个包括在godaddy cert.pem中)的pem文件。 在这种情况下的结果是相似的。 Windows在执行时不显示证书,但在文件属性中,我能够发现代码签名者是我的公司。 当我查看证书的详细信息时,它也是这样说的:“在这个问题上没有签名”

最后,我试图做这个问题中描述的相同的过程(使用单声道signcode): 在基于Linux的发行版上签名Windows应用程序

Solutions Collecting From Web of "如何使用GoDaddy中的.SPC或.PEM文件签署代码(.EXE文件)(使用Ubuntu)?"

问题解决了在我的Ubuntu中更新OSSLSIGNCODE …

使用pvk2pfx.exe工具将.spc.pvk文件转换为.pfx文件为我解决了这个问题。

转换命令如下:

 osslsigncode sign -pkcs12 codesign.pfx -askpass -n "MyApp" -i "CompanyName" -t "http://tsa.starfieldtech.com" -h sha2 -in srcfile.exe -out signedfile.exe