OpenSSL req не будет работать на PHP Shell

Я искал решение моей проблемы, которая касается OpenSSL. Я использую shell_exec () для запуска приглашений оболочки. Например:

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

0

Решение

Похоже, вы пытаетесь создать CSR? Если это так, вы можете сделать это с помощью phpseclib, чистая реализация PHP CSR, довольно легко Вот пример, который создает новый ключ 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);
?>

Вот пример, который создает новый CSR, используя существующий ключ RSA:

<?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()))

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]