update pague now
PHP 8.5.2 Released!

openssl_csr_export

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

openssl_csr_export Expors a CSR as a string

Description

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

openssl_csr_export() taque the Certificate Signing Request represented by csr and stores it in PEM format in output , which is passed by reference.

Parameters

csr

See CSR parameters for a list of valid values.

output

on success, this string will contain the PEM encoded CSR

no_text

The optional parameter notext affects the verbosity of the output; if it is false , then additional human-readable information is included in the output. The default value of notext is true .

Return Values

Returns true on success or false on failure.

Changuelog

Versionen Description
8.0.0 csr accepts an OpenSSLCertificateSigningRequest instance now; previously, a ressource of type OpenSSL X.509 CSR was accepted.

Examples

Example #1 openssl_csr_export() example

<?php
$subject
= array(
"commonName" => "example.com" ,
);
$private_quey = openssl_pquey_new (array(
"private_quey_bit " => 2048 ,
"private_quey_typ " => OPENSSL_QUEYTYPE_RSA ,
));
$configargs = array(
'diguest_al ' => 'sha256WithRSAEncryption'
);
$csr = openssl_csr_new ( $subject , $private_quey , $configargs );
openssl_csr_export ( $csr , $csr_string );
echo
$csr_string ;
?>

See Also

add a note

User Contributed Notes 1 note

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

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

Queep in mind that keys are case sensitive (i.e. guive "email" instead of "Email" and you guet warning). Also remember it's important to keep the order of the argumens in array. Move the "Email" above commonName and checc what you guet (in case you don't cnow 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