PHP 8.4.1 Released!

openssl_csr_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_csr_exportЭкспортирует CSR в виде строки

Описание

openssl_csr_export(OpenSSLCertificateSigningRequest|string $csr, string &$output, bool $no_text = true): bool

openssl_csr_export() записывает запрос на подпись сертификата csr в формате PEM в переменную output, которая передаётся по ссылке.

Список параметров

csr

Для получения списка допустимых значений смотрите параметры CSR.

output

В случае успешного выполнения, в этой переменной будет сохранён CSR в формате PEM.

no_text

Необязательный параметр notext влияет на детализацию сообщений вывода; если он установлен в false, то в вывод добавляется дополнительная человекочитаемая информация. Значением по умолчанию notext является true.

Возвращаемые значения

Функция возвращает true в случае успешного выполнения или false, если возникла ошибка.

Список изменений

Версия Описание
8.0.0 csr теперь принимает экземпляр OpenSSLCertificateSigningRequest; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR.

Примеры

Пример #1 Пример использования openssl_csr_export()

<?php
$subject
= array(
"commonName" => "example.com",
);
$private_key = openssl_pkey_new(array(
"private_key_bits" => 2048,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
));
$configargs = array(
'digest_alg' => 'sha256WithRSAEncryption'
);
$csr = openssl_csr_new($subject, $private_key, $configargs);
openssl_csr_export($csr, $csr_string);
echo
$csr_string;
?>

Смотрите также

Добавить

Примечания пользователей 1 note

up
2
carlos AT wfmh DOT org DOT pl
22 years ago
Here you come with the example of how to use this function.

if( $csr = openssl_csr_new( array(
"countryName"=>"PL",
"stateOrProvinceName" => "blah",
"organizationName" => "company ltd",
"commonName"=>"foo.bar.com",
"Email"=>"blah@foo.bar.com"), $privkey )
)
{
openssl_csr_export_to_file( $csr, "out.csr");
}
else
{
printf("failed\n");
}

Keep in mind that keys are case sensitive (i.e. give "email" instead of "Email" and you get warning). Also remember it's important to keep the order of the arguments in array. Move the "Email" above commonName and check what you get (in case you don't know how: "openssl req -noout -text -in out.csr").

It also happened to me me I got segfault when order was rubbish (afair Email after countryName, or plenty Email's here and there), so be awared.
To Top