7.74 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.74.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"; }
|
|