Bulgaria PHP Conference 2019

openssl_csr_export

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

openssl_csr_exportExporte un CSR vers un fichier ou une variable

Description

openssl_csr_export ( mixed $csr , string &$out [, bool $notext = TRUE ] ) : bool

openssl_csr_export() prend la demande de signature de certificat représentée par CSR et la stocke au format PEM dans out, qui est passé par référence.

Liste de paramètres

csr

Voir les paramètres CSR pour obtenir une liste des valeurs valides.

out

en cas de succès, cette chaîne contiendra le CSR encodé en PEM

notext

Le paramètre optionnel notext affecte le niveau verbeux de l'affichage ; s'il vaut FALSE, des informations humainement lisibles seront ajoutées dans l'affichage. Par défaut, le paramètre notext vaut TRUE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 openssl_csr_export() example

<?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;
?>

Voir aussi

add a note add a note

User Contributed Notes 1 note

up
2
carlos AT wfmh DOT org DOT pl
17 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