以前从Verisign购买的证书都是.pvk+.spc文件,这次却得到一个.pfx文件,而inetsdk的SignCode.exe是使用.pvk+.spc文件的,只好去找工具来进行提取了。
工具准备:首先需要OpenSSL,可以从这里下载。另外还需要pvk.exe,可以从这里下载。
用以下命令:
1) 从 PFX 文件提取私钥
->openssl pkcs12 -in (pfx-file) -nocerts -nodes -out (pem-key-file)
如:->openssl pkcs12 -in SOMETHING.pfx -nocerts -nodes -out SOMETHING.PEM
会要求输入PFX的密码.
2) 转换成 PVK 文件
-> pvk -in(pem-key-file) -topvk -out (pvk-file)
如:-> pvk -in SOMETHING.PEM -topvk -out SOMETHING.pvk
3) 从 PFX 文件提取证书
-> openssl pkcs12 -in (pfx-file) -nokeys -out (pem-certs-file)
如:-> openssl pkcs12 -in SOMETHING.pfx -nokeys -out SOMETHING_CERTS.pem
也会要求输入 PFX 的密码
4) 把 PEM 文件转换成 SPC 文件
-> openssl crl2pkcs7 -nocrl -certfile (pem-certs-file) -outform DER -out (spc-file)
如: -> openssl crl2pkcs7 -nocrl -certfile SOMETHING_CERTS.pem -outform DER -out SOMETHING.SPC