Page 1 sur 1

problème création certificat ssl

Posté : 08 août 2013, 23:23
par hakazizi
Bonjour,
Avant d'acheter un certificat ssl,
J’ai testé l'exemple proposé par php.fr
J’ai un plusieurs warning qui s'affiche et je ne sais pas comment les réglés.
C’est la première fois que j'utilise une certification et vue les prix je n’ai pas trop intérêt à me planter.
Merci.

Code : Tout sélectionner

Warning: openssl_csr_sign() [function.openssl-csr-sign]: cannot get CSR from parameter 1 in /home/www/hakazizi/www2/php/mots-inerdits.php on line 28 Warning: openssl_csr_export() expects parameter 1 to be resource, boolean given in /home/www/hakazizi/www2/php/mots-inerdits.php on line 37 Warning: openssl_x509_export() [function.openssl-x509-export]: cannot get cert from parameter 1 in /home/www/hakazizi/www2/php/mots-inerdits.php on line 38 Warning: openssl_pkey_export() [function.openssl-pkey-export]: cannot get key from parameter 1 in /home/www/hakazizi/www2/php/mots-inerdits.php on line 39
ci dessous le code utilisé
<?php
// 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ément, le nom de la personne
// qui représente le site de votre compagnie pour qui vous générez des certificats.
// Pour les certificats SSL, le commonName est généralement le nom de domaine
// pour lequel vous installez le certificat, mais pour les certificats S/MIME,
// le commonName sera le nom de la personne qui utilisera le certificat.
$dn = array(
    "countryName" => "FR",
    "stateOrProvinceName" => "Pays de la loire",
    "localityName" => "Nantes",
    "organizationName" => "La rose de l'orient",
    "organizationalUnitName" => "robe et vetement",
    "commonName" => "robe-et-vetement.com",
    "emailAddress" => "[email protected]"
);
// Génère les clés privée 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-signé
// une fois que votre autorité de certification accède à votre requête
// Cette commande crée une certificat auto-signé valide 365 jours
$sscert = openssl_csr_sign($csr, null, $privkey, 365);
// Maintenant, vous voulez préserver la clé privée, la CSR et le certificat
// auto-signé, 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 var_dump($csrout);
openssl_x509_export($sscert, $certout) and var_dump($certout);
openssl_pkey_export($privkey, $pkeyout, "mypassword") and var_dump($pkeyout);
}exit();

Re: problème création certificat ssl

Posté : 09 août 2013, 08:57
par Berzemus
Générer un certificat par Php ?

Pourquoi pas directement avec Openssl, en ligne de commande ?

Re: problème création certificat ssl

Posté : 09 août 2013, 11:50
par moogli
Sinon $csr ne semble pas valide (première ligne) du coup le reste de vautre.

Ajout un var_dump pour voir ce que ça donne.

@+

Re: problème création certificat ssl

Posté : 09 août 2013, 13:26
par hakazizi
bonjour
A la variable csr j'ai bool(false) avec la fonction var_dump je comprend encore moins j'aurais du avoir un tableau en théorie???
merci

@Berzemus d'accord mais comment openssl(); sur php.net il n'y a rien ni syntaxe mais une liste de fonction.
j'ai appliqué la méthode qui m'a paru la plus simple et que j'ai cru comprendre alors qu'en fait je me rend compte qu'il n'en étais rien et que au final je n'y comprend plus rien plus je réfléchis plus je m'embrouille...
merci de votre aide.

Re: problème création certificat ssl

Posté : 09 août 2013, 18:18
par Berzemus
@Berzemus d'accord mais comment openssl(); sur php.net il n'y a rien ni syntaxe mais une liste de fonction.
j'ai appliqué la méthode qui m'a paru la plus simple et que j'ai cru comprendre alors qu'en fait je me rend compte qu'il n'en étais rien et que au final je n'y comprend plus rien plus je réfléchis plus je m'embrouille...
merci de votre aide.
En fait, en étant sur windows, c'est bien plus compliqué ;)

Re: problème création certificat ssl

Posté : 09 août 2013, 22:12
par moogli
première chose, on lit bien la doc
Note: Vous devez avoir un fichier openssl.cnf valide et installé pour que cette fonction opère correctement. Voir les notes se trouvant dans la section concernant l'installation pour plus d'informations.
et donc du coup utiliser le paramètre de openssl_pkey_new ;)

par exemple
<?php
$configargs = array(
    'config' => path\to\php\extras\ssl\openssl.cnf',
    'digest_alg' => 'md5',
    'x509_extensions' => 'v3_ca',
    'req_extensions'   => 'v3_req',
    'private_key_bits' => 666,
    'private_key_type' => OPENSSL_KEYTYPE_RSA,
    'encrypt_key' => false,
);
Après il y a p'tet des soucis, dans les exemples il y en a un fonctionnel, sans utilisation de openssl_pkey_new().
<?php
$configargs = array(
    'config' => path\to\php\extras\ssl\openssl.cnf',
    'digest_alg' => 'sha512',
    'x509_extensions' => 'v3_ca',
    'req_extensions'   => 'v3_req',
    'private_key_bits' => 2048,
    'private_key_type' => OPENSSL_KEYTYPE_RSA,
    'encrypt_key' => false,
);

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

// Vous souhaiterez généralement créer un certificat auto-signé
// une fois que votre autorité de certification accède à votre requête
// Cette commande crée une certificat auto-signé valide 365 jours
$sscert = openssl_csr_sign($csr, null, $privkey, 365);
openssl_csr_export($csr, $csrout) and var_dump($csrout);
bon par contre les exports reste capricieux ..

@+