0
我已经转换的公钥(.CER)和私钥(.KEY)以PEM格式,但我不得不使用命令行,将它们转换为:是否有可能通过只使用PHP openssl函数将.cer和.key文件转换为.pem?
$openSSLpath = "c:\OpenSSL-Win64\bin\openssl.exe"; //Path to OpenSSL exe
$path = "c:\appserver\Apache2.2\htdocs\FIEL"; //Path to Project Folder
$rutaCer = $path.'\GAMA600504JP1.cer';
$rutaKey = $path.'\GAMA600504JP1.key';
$passwordKey = '12345678a';
$cmdKey = $openSSLpath." pkcs8 -inform DER -in ".$rutaKey." -passin pass:".$passwordKey." -out ".$rutaKey.".pem";
exec($cmdKey);
$cmdCer = $openSSLpath." x509 -inform DER -outform PEM -in ".$rutaCer." -pubkey -out ".$rutaCer.".pem";
exec($cmdCer);
这正确生成的.PEM文件,但我需要知道是否有可能通过任何其他方式使用PHP来做到这一点。请注意,我对openSSL完全陌生,这是我在PHP上发现的唯一方法。
为此,我必须确保OpenSSL的位置正确并安装在我的服务器上,并且为了转换为.pem,我必须将.cer和.key文件临时保存在服务器中由于安全原因。
有没有其他办法?
嗨kba,当我使用你的代码时,我得到一个从OpenSSL – EfraimPC
得到的完全不同的pem文件有什么区别?在base64字符串或标题(BEGIN,END)?你使用什么命令来生成.cer和.key文件?如果我不知道文件中究竟有什么内容或openssl命令的输出有什么不同,我无法帮助您。 – kba