用证书签署exe

时间:2016-03-30 18:14:47

标签: ssl openssl pki

我从我们公司的Windows PKI服务器(基础设施)获得了.cer扩展证书。

现在我想用这个证书手动签署一个exe文件。但是微软的signtool只允许pfx文件签署exe文件。

所以,我想使用openssl工具将.cer文件转换为.pfx文件,我发出的命令是

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile more.crt

但我的问题是如何获取privateKey.key文件或如何生成它?

我的程序是否正确签署了exe文件?

更新

在整个Windows服务器PKI infra和CertTool上做了一些阅读。 我有。私人密钥的.cer文件。 但无法以某种方式找到它。

但是能够使用DigiCertUtil.exe

使用此证书签署我的exe

欢呼声,

Saurav

1 个答案:

答案 0 :(得分:1)

signtool可以使用Windows证书中的私钥和证书进行签名" store" (显示为带有私钥的证书的条目)或来自PFX / P12文件(包含私钥和证书)。常见的主题是您使用私钥以及证书进行签名或解密;单独的证书只包含publickey,但还不够。公钥加密的全部意义在于,只有私钥"所有者"或者给予副本的人才能签名或解密; publickey可以公开分发并用于验证或加密,但没有其他人可以使用publickey获取私钥,因此私钥保持私有。如果你能够生成'来自证书的私钥,对手也可能没有安全保障。

如果您收到新生成的证书(由公司PKI)以响应您的请求,您必须已经拥有私钥,因为您发送的请求(称为证书签名请求或CSR)本身是使用私钥签名的。您需要指定用于生成请求的方法,这将确定您的私钥的位置以及如何使用它。

如果您收到了为响应其他人的请求而生成的证书,或者由CA自己发起的他们拥有私钥,您需要从他们那里获取。

请注意,对于.exe上的签名具有任何值,您的证书必须明确标记为代码签名证书,并由受信任的CA(在您的客户端计算机上)颁发这样的证书。确保您或其他人提交的请求指定了此内容。