<?php
// Supposons que ce script est configuré pour recevoir des CSR qui ont
// été collés dans un champ 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'ait 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");
$usercert = openssl_csr_sign($csrdata, $cacert, $privkey, 365, array('digest_alg'=>'sha256') );
// Affichons maintenant le certificat généré, de façon à ce que l'utilisateur
// puisse le copier/coller dans sa configuration locale (comme un
// fichier qui contient les certificats de son serveur SSL)
openssl_x509_export($usercert, $certout);
echo $certout;
// Affiche toutes les erreurs survenues
while (($e = openssl_error_string()) !== false) {
echo $e . "\n";
}
?>