我需要使用PFX文件创建数字签名的PDF。我为此使用TCPDF,但TCPDF与PEM/CRT文件一起使用。 如果我上传共享主机上的文件,并尝试转换文件,它总是零KB。如何将pfx转换为共享主机上的crt/pem,如使用PHP脚本的Godaddy?
这是我试过的代码。
exec('openssl pkcs12 -in cert.pfx -nocerts -out keyfile-encrypted.key');
我需要使用PFX文件创建数字签名的PDF。我为此使用TCPDF,但TCPDF与PEM/CRT文件一起使用。 如果我上传共享主机上的文件,并尝试转换文件,它总是零KB。如何将pfx转换为共享主机上的crt/pem,如使用PHP脚本的Godaddy?
这是我试过的代码。
exec('openssl pkcs12 -in cert.pfx -nocerts -out keyfile-encrypted.key');
几个可能性:
-nocerts
选项,所以你只能得到私钥。删除该选项以将证书保留为PEM导出的一部分。openssl
命令来解密PFX文件。如果您从openssl
获得0KB文件,则可能会检测到请求的非交互性并退出。openssl
命令中指定-nodes选项以防止openssl
试图加密生成的文件。同样,如果openssl
正在等待输入(加密密码),但检测到非交互式呼叫,则可能只是在不向文件写入任何内容的情况下失败。使用输出和返回在PHP中的调用exec
的VAR参数来确定什么错:
EXEC( 'OpenSSL的PKCS12 -in cert.pfx -nocerts退房手续密钥文件-encrypted.key',$输出,$ retval);
的$output
变量应包含从该命令的输出; $retval
变量将包含返回代码,然后您可以检查openssl的文档。
谢谢!但我想通了。 分别提取私钥和证书分别与.key和.cer扩展名的新文件。 –
当您从命令行执行'openssl pkcs12 -in cert.pfx -nocerts -out keyfile-encrypted.key'时会发生什么?它可能会导致你[“openssl pkcs12”网站:stackoverflow.com](https://www.google.com/search?q=“openssl + pkcs12”+ site%3Astackoverflow.com)。 – jww
谢谢!但我想出来了......分别用.key和.cer扩展名分别提取私钥和证书。 @jww –