【发布时间】:2015-06-20 20:14:49
【问题描述】:
我已经将公钥 (.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 文件临时保存在服务器中,不建议这样做出于安全原因。
还有其他方法吗?
【问题讨论】:
标签: php openssl key private public