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

时间:2014-07-11 10:53:07

标签: linux exe code-signing code-signing-certificate

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

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

以前(使用其他公司提供的其他代码签名证书)我有一个pfx文件,我曾经创建过.spc和.der文件,最后我用osslsigncode签署了我的可执行文件,但这不再适用了。< / p>

目前,当我尝试从.pem文件创建.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正在创建.der文件,并且我能够使用osslsigncode,godaddy提供的.spc文件和创建的.der文件来签署可执行文件:

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

此时exe文件已成功签名,但是当我在Windows上测试时出现错误,因为它无法识别签名。检查文件属性我发现代码签名者是&#34; Go Daddy Class 2 Certification Authority&#34;并且证书详细说明&#34;主题中没有签名&#34;

我也尝试过执行相同的程序,但是使用的pem文件只包括我的.key和我公司的证书(最后一个包含在godaddy cert.pem中)。在这种情况下的结果是类似的。 Windows在执行时不显示证书,但在文件属性中,我能够找到代码签名者是我的公司。当我检查证书详细信息时,它说的相同:&#34;主题中没有签名&#34;

最后,我尝试按照此问题中描述的相同步骤(使用单字码):Signing Windows application on Linux-based distros

2 个答案:

答案 0 :(得分:1)

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

转换命令如下:

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

答案 1 :(得分:0)

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