繁体   English   中英

OpenSSL请求在PHP Shell上不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM