[英]OpenSSL req won't work on PHP Shell
我一直在寻找有关OpenSSL的问题的解决方案。 我正在使用shell_exec()运行shell promts。 例如:
shell_exec("openssl genrsa -out myprvkey.pem 1024");
工作正常,并生成myprvkey.pem。
然而,
shell_exec("openssl req -new -key myprvkey.pem -x509 -days 365 -out mypubcert.pem");
没有给出任何错误就无法正常工作。
难道我做错了什么? 谢谢。 PS:如果我缺少什么,请提醒我。
OpenSSL版本:268439647
看起来您正在尝试创建CSR? 如果是这样,您可以轻松地使用纯PHP CSR实现phpseclib进行操作 。 这是创建新的RSA密钥和新的CSR的示例:
<?php
include('File/X509.php');
include('Crypt/RSA.php');
$privKey = new Crypt_RSA();
extract($privKey->createKey());
$privKey->loadKey($privatekey);
$x509 = new File_X509();
$x509->setPrivateKey($privKey);
$x509->setDNProp('id-at-organizationName', 'phpseclib demo cert');
$csr = $x509->signCSR();
echo $x509->saveCSR($csr);
?>
这是一个使用现有RSA密钥创建新CSR的示例:
<?php
include('File/X509.php');
include('Crypt/RSA.php');
$privKey = new Crypt_RSA();
$privKey->loadKey('...');
$x509 = new File_X509();
$x509->setPrivateKey($privKey);
$x509->setDNProp('id-at-organizationName', 'phpseclib demo cert');
$csr = $x509->signCSR();
echo $x509->saveCSR($csr);
?>
(唯一的区别是正在向loadKey
传递一个字符串[可以通过file_get_contents
填充或直接输入],而不是extract($rsa->createKey())
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.