如何使用来自 GoDaddy(使用 Ubuntu)的 .SPC 或 .PEM 文件对代码(.EXE 文件)进行签名? [关闭]

Posted

技术标签:

【中文标题】如何使用来自 GoDaddy(使用 Ubuntu)的 .SPC 或 .PEM 文件对代码(.EXE 文件)进行签名? [关闭]【英文标题】:How to sign code (.EXE file) with a .SPC or .PEM file from GoDaddy (using Ubuntu)? [closed] 【发布时间】:2014-07-11 10:53:06 【问题描述】:

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

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

以前(使用其他公司提供的其他代码签名证书)我有一个 pfx 文件,用于创建 .spc 和 .der 文件,最后我使用 osslsigncode 对我的可执行文件进行签名,但这不再起作用了。

目前,当我尝试从 .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上测试它时出现问题,因为它无法识别签名。检查文件属性,我发现代码签名者是“Go Daddy Class 2 Certification Authority”,证书详细信息显示“主题中没有签名”

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

最后,我尝试执行此问题中描述的相同程序(使用单信号码):Signing Windows application on Linux-based distros

【问题讨论】:

【参考方案1】:

使用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

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于如何使用来自 GoDaddy(使用 Ubuntu)的 .SPC 或 .PEM 文件对代码(.EXE 文件)进行签名? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

无法在 AWS EC2 (Ubuntu) apache 系统上 SSL Godaddy 验证证书

Heroku/GoDaddy:将裸域发送到 www [关闭]

Magento 从 Godaddy 服务器迁移到 Amazon aws Ubuntu

Heroku Godaddy 裸域 [关闭]

Route53 域名不起作用(godaddy 域)

如何在 OpenShift 托管中使用裸 GoDaddy 域? [关闭]