Openssl 签名证书和私钥不匹配或不包含有效信息

Openssl 签名证书和私钥不匹配或不包含有效信息,openssl,installation,setup-deployment,sign,signtool,Openssl,Installation,Setup Deployment,Sign,Signtool,我正在处理一个安装项目,我想签署我的“setup.exe”文件 对于这个问题,我有 “setup.exe”文件 一个“aaa.pfx”文件(我也使用这个pfx文件作为我的站点ssl证书。) 首先, 我把pfx文件转换成crt和pvk上面的命令 导出私钥:openssl pkcs12-in filename.pfx-nocerts-out key.pvk 导出证书:openssl pkcs12-in filename.pfx-clcerts-nokeys-out cert.crt 我正在使

我正在处理一个安装项目,我想签署我的“setup.exe”文件

对于这个问题,我有

  • “setup.exe”文件
  • 一个“aaa.pfx”文件(我也使用这个pfx文件作为我的站点ssl证书。)
首先,

我把pfx文件转换成crt和pvk上面的命令

  • 导出私钥:
    openssl pkcs12-in filename.pfx-nocerts-out key.pvk
  • 导出证书:
    openssl pkcs12-in filename.pfx-clcerts-nokeys-out cert.crt
我正在使用windows signwizard工具进行签名

步骤:

  • 我选择了我的“setup.exe”文件
  • 我选择了我的“cert.crt”
  • 我选择了“key.pvk”,这会得到一个类似于图片的错误


有什么建议吗?

您是否尝试过以下方法:

1.
openssl sha256 -out digest.txt setup.exe
2.
openssl dgst -sha256 -sign key.pvk -out signed_setup.exe digest.txt

您说您对SSL站点证书使用相同的
PFX
(相当于
PKCS#12

这就是问题所在:您不能使用类型为TLS Web服务器身份验证、TLS Web客户端身份验证的证书像
setup.exe一样对代码进行签名

使用读取导出的证书时

openssl x509 -in cert.crt -text
您必须查找
X509v3扩展密钥用法:

要对代码进行签名,它必须是:
代码签名,Microsoft商业代码签名
,对于证书颁发机构提供商来说,这是一种不同的服务和价格