Services webmasters
Partenaires
Jeux concours gratuits
 
openssl_csr_export
<<<
openssl_csr_new openssl_csr_sign
>>>

7.73 OpenSSL
7 Index des fonctions
 Manuel PHP

Introduction
Pré-requis
Installation
Configuration à l'exécution
Types de ressources
Constantes prédefinies
Paramètres clés/certificats
Vérification de certificats
openssl_csr_export_to_file
openssl_csr_export
->openssl_csr_new
openssl_csr_sign
openssl_error_string
openssl_free_key
openssl_get_privatekey
openssl_get_publickey
openssl_open
openssl_pkcs7_decrypt
openssl_pkcs7_encrypt
openssl_pkcs7_sign
openssl_pkcs7_verify
openssl_pkey_export_to_file
openssl_pkey_export
openssl_pkey_get_private
openssl_pkey_get_public
openssl_pkey_new
openssl_private_decrypt
openssl_private_encrypt
openssl_public_decrypt
openssl_public_encrypt
openssl_seal
openssl_sign
openssl_verify
openssl_x509_check_private_key
openssl_x509_checkpurpose
openssl_x509_export_to_file
openssl_x509_export
openssl_x509_free
openssl_x509_parse
openssl_x509_read

7.73.11 openssl_csr_new()Génère une clé privée et un CSR

[ Exemples avec openssl_csr_new ]   PHP 4 >= 4.2.0

bool  openssl_csr_new ( array   dn , resource   privkey , array   configargs , array   extraattribs )

openssl_csr_new génère une nouvelle CSR (Certificate Signing Request, requête de signature de certificat), basé sur les informations fournies par dn , qui représente le nom distingué (Distinguished Name) qui doit être utilisé pour ce certificat.

privkey doit être une clé privée qui a été générée par openssl_pkey_new (ou obtenue autrement par l'une des fonctions de la famille openssl_pkey) La clé publique sera utilisée pour signer la CSR.

extraattribs est utilisé pour spécifier des options de configuration supplémentaires pour la CSR. Les deux paramètres dn et extraattribs sont des tableaux associatifs dont les clés sont converties en OIDs et appliquées aux parties appropriées de la requête.

Note

Vous devez installer un fichier openssl.cnf valide pour que cette fonction opère correctement. Voyez les notes dans la section installation pour plus d'informations.

Par défaut, les informations du fichier openssl.conf de votre système sont utilisées pour initialiser la requête; vous pouvez spécifier une section du fichier de configuration en utilisant l'index config_section_section du tableau configargs . Vous pouvez aussi spécifier une configuration OpenSSL alternative en utilisant l'index config , et en lui donnant la valeur du chemin à utiliser. Les index suivants, si fournis dans le paramètre configargs , se comportent comme leur équivalent du fichier openssl.conf , tel qu'indiqué ci-dessous.
Index configargs Type Equivalent openssl.conf Description
digest_alg chaîne de caractères default_md Sélectionne la méthode "digest" à utiliser
x509_extensions chaîne de caractères x509_extensions Sélectionne quelles extensions doivent être utilisées lors de la création du certificat x509
req_extensions chaîne de caractères req_extensions Sélectionne quelles extensions doivent être utilisées lors de la création d'une CSR
private_key_bits integer default_bits Spécifie le nombre de bits à utiliser lors de la génération de la clé privée
private_key_type integer none Spécifie le type de clé privée à générer. Cela peut êtr l'une des constantes suivantes : OPENSSL_KEYTYPE_DSA , OPENSSL_KEYTYPE_DH ou OPENSSL_KEYTYPE_RSA . La valeur par défaut est OPENSSL_KEYTYPE_RSA , ce qui est le seul type de clé actuellement supporté.
encrypt_key booean encrypt_key Doit être une clée exportée (avec mot de passe) qui sera chiffrée?

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemple avec openssl_csr_new - création d'un certificat auto chiffré

// Assigne les valeurs du nom distingué à utiliser avec le certificat
// Vous devez remplacer les valeurs suivantes pour qu'elles correspondent
// au nom de votre compagnie, ou, plus préciséement, le nom de la personne
// qui représente le site de votre compagnie pour qui vous générez des
// clés. Pour les certificats SSL, le commonName est généralement le nom de domaine
// pour lequel vous installez le certificat, mais pour les certificats
// le commonName sera le nom de la personne qui utilisera le cerficat.
$dn = array(
    "countryName" => "UK",
    "stateOrProvinceName" => "Somerset",
    "localityName" => "Glastonbury",
    "organizationName" => "The Brain Room Limited",
    "organizationalUnitName" => "PHP Documentation Team",
    "commonName" => "Wez Furlong",
    "emailAddress" => "wez@php.net"
);

// Génère la clé privé et publique
$privkey = openssl_pkey_new();

// Génère la requête de signature de certificat
$csr = openssl_csr_new($dn, $privkey);

// Vous souhaiterez généralement créer un certificat auto chiffré
// une fois que votre autorité de certification accède à votre requête
// Cette commande crée une certificat auto chiffré
$sscert = openssl_csr_sign($csr, null, $privkey, 365);

// Maintenant, vous voulez préserver la clé secrête, la CSR et le certificat
// auto-chiffré, de façon à ce qu'ils puissent être installés sur votre
// serveur web, serveur mail ou client mail (suivant l'utilisation).
// Cet exemple vous montre comment placer ces éléments dans des variables
// mais vous pouvez aussi les mettre directement dans des fichiers.
// Typiquement, vous allez envoyer la CSR à votre autorité de certification
// qui vous émettra un "vrai" certificat.
openssl_csr_export($csr, $csrout) and debug_zval_dump($csrout);
openssl_x509_export($sscert, $certout) and debug_zval_dump($certout);
openssl_pkey_export($privkey, $pkeyout, "mypassword") and debug_zval_dump($pkeyout);

// Affiche les erreurs qui sont survenues
while (($e = openssl_error_string()) !== false) {
    echo $e . "\n";
}

<< openssl_csr_new >>
openssl_csr_export OpenSSL openssl_csr_sign
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -