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.12 openssl_csr_sign()Signe un certificat avec un autre certificat[ Exemples avec openssl_csr_sign ] PHP 4 >= 4.2.0
resource
openssl_csr_sign (
mixed
csr
,
mixed
cacert
,
mixed
priv_key
,
int
days
)
openssl_csr_sign
génère un certificat x509 (une ressource)
depuis la CSR
csr
, générée précédemment par
openssl_csr_new
, mais ce paramètre peut aussi être une
CSR encodée au format PEM, et spécifiée avec
file://path/to/csr
ou une chaîne exportée par
openssl_csr_export
.
Le certificat généré sera signé par le certificat
cacert
. Si
cacert
vaut
NULL
,
le certificat généré sera auto-signé.
priv_key
est la clé privée qui correspond au certificat
cacert
.
days
spécifie la durée pour laquelle le certificat
est valide, en nombre de jour.
openssl_csr_sign
retourne une ressource de certificat x509
en cas de succès, et
FALSE
sinon.
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.
|
Exemple avec openssl_csr_sign : signer une CSR (comment réaliser votre propre autorité de certification) |
// Supposont que ce script est configuré pour recevoir des CSR qui ont // été collé dans un champs textarea depuis une autre page $csrdata = $_POST["CSR"];
// Nous allons signer la requête avec notre propre certificat, en tant // qu'"autorité de certification". Vous pouvez utiliser n'importe quel // certificat pour en signer un autre, mais le processus est inutile à moins // que le certificat de signature n'ai la confiance des utilisateurs // qui utiliseront le nouveau certificat signé.
// Nous avons besoin de notre certificat et de la clé privée $cacert = "file://path/to/ca.crt"; $privkey = array("file://path/to/ca.key", "la_cle_secrete_de_votre_certificat");
$userscert = openssl_csr_sign($csrdata, $cacert, $privkey, 365);
// Affichons maintenant le certificat généré, ce façon à ce que l'utilisateur // puisse le copier/coller dans leur configuration locale ( comme par exemple un // fichier qui contient les certificats de leur serveur SSL) openssl_x509_export($usercert, $certout) and echo $certout;
// Affiche toutes les erreurs survenues while (($e = openssl_error_string()) !== false) { echo $e . "\n"; }
|
|