• Accueil
  • Entreprendre
    • Communiquer sur le web
  • Programmation
    • WLangage
    • HTML / CSS
    • PHP / MYSQL
    • Javascript
    • Jquery : enrichissez vos pages webs !
    • Utilisation de CK Editor
  • Votre Ordi
    • Mieux utiliser son PC
  • Systèmes
    • Sécurisation de vos systèmes informatiques
    • Virtualisation
  • 'Geekeries'
    • Outils de développement
    • On aime
Accueil > Systèmes > Sécurisation de vos systèmes informatiques > Création d'un certificat SSL
Tags
Création de site web   Nowwweb.com   Word 2003   Compte utilisateur   disque virtuel   Google   CSS   windows   Sécurisation   IpTables   e-mail   Accusé réception   MYSQL   linux   VMware   Notepad++   Réseau   PHP   Facebook   Référencement   CMS   WD16   SSL   Jquery   mail   Référencement   Windows7   Javascript   WinDev   Alixo  

Création d'un certificat SSL

Partager :

Il existe beaucoup de tutoriels sur Internet qui montre comment créer des certificats en utilisant OpenSSL. La plupart sont en anglais même s’il en existe quelques-uns en français. L'opération est assez complexe ce qui explique la longueur de ces tutoriels. Cependant, il est assez difficile pour un néophyte de savoir ce que l'on fait vraiment après avoir copié coller les commandes indiquées dans ces derniers. J'ai réalisé ce tutoriel afin d'expliquer au mieux la création de certificats SSL, mais sans entrer dans les détails.

Pour ceux que ça intéresse, voici 2 liens expliquant très bien le fonctionnement du chiffrement des communications par Socket SSL :

Source commentcamarche.net

Cryptographie - Secure Sockets Layers (SSL)

Les certificats

Schéma général

Avant de partir dans les lignes de commande. Voici un schéma représentant les fichiers qui vont être générés dans ce tutoriel et leur futur emplacement dans un réseau quelconque.
(Schéma a venir).

Pré requis

Avant de commencer à jouer à "l'autorité de certification", vous aurez besoin au préalable d'installer les logiciels suivants :

OpenSSL

Vous permettra de créer un certificat autosigné. Ce certificat pourra être utilisé pour test et/ou pour une application en exploitation. Pour cela, il est nécessaire d'utiliser la bibliothèque open source OpenSSL.
Télécharger et installer la bibliothèque OpenSSL compilée pour Windows : http://www.slproweb.com/products/Win32OpenSSL.html
note : L’installation est peut longue sur la fin, soyez patient.

Dépendances d’OpenSSL

OpenSSL nécessite Microsoft Visual C++ 2008 Redistributable pour fonctionner si vous ne l’avez pas il faut aussi l’installer.
Microsoft Visual C++ 2008 Redistributable Package

Pour 64Bits : http://www.microsoft.com/downloads/fr-fr/details.aspx?FamilyID=ba9257ca-337f-4b40-8c14-157cfdffee4e

Pour 32 Bits : http://www.microsoft.com/downloads/fr-fr/details.aspx?FamilyID=ba9257ca-337f-4b40-8c14-157cfdffee4e

Perl

Pour l’exécution des scripts Perl ci-dessous vous aurez d’un moteur Perl sur votre ordinateur.
Télécharger et installer un moteur Perl : http://www.perl.org/get.html#win32

Créer une autorité de certification

Une autorité de certification est une entité ayant le pouvoir de signer des certificats. Le client doit installer le certificat de l'autorité de certification dans les sociétés dites "de confiance" pour que tous les certificats signés par cette autorité et ne présentant pas de défaut soient acceptables.

-          Ouvrir une ligne de commande (exécuter cmd).

-          Se positionner dans le répertoire dans répertoire d’installation d’OpenSSL/bin

C:>cd "C:OpenSSL-Win64"
C:OpenSSL-Win64>cd bin

-          Saisir :

CA.pl -newca

-          Tapez [Entrée] pour créer une nouvelle CA.

CA certificate filename (or enter to create)

-          Saisissez le mot de passe de la clé privée (2 fois).

Making CA certificate ...

Loading 'screen' into random state - done

Generating a 1024 bit RSA private key

..............................................++++++.....++++++

writing new private key to './demoCA/private/cakey.pem'

Enter PEM pass phrase:                     << Mot de passe que vous souhaitez utiliser pour signer les autres certificats serveur par la suite

Verifying - Enter PEM pass phrase:    << La même chose au-dessus ^

 


-----

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [AU]:FR

State or Province Name (full name) [Some-State]:France

Locality Name (eg, city) []:Chalons-en-Champagne

Organization Name (eg, company) [Internet Widgits Pty Ltd]:NowwweB

Organizational Unit Name (eg, section) []:NowwweB

Common Name (eg, YOUR name) []:NowwweB.com

Email Address []:contact@nowwweb.com

Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:                        << Optionnel

An optional company name []:NowwweB

Using configuration from C:OpenSSL-Win64inopenssl.cfg

Loading 'screen' into random state - done

Enter pass phrase for ./demoCA/private/cakey.pem:

Check that the request matches the signature

Signature ok

Certificate Details:

        Serial Number:

            f5:f5:c4:62:33:53:d8:ab

        Validity

            Not Before: Jul 22 10:39:18 2011 GMT

            Not After : Jul 21 10:39:18 2014 GMT

        Subject:

            countryName               = FR

            stateOrProvinceName       = France

            organizationName          = NowwweB

            organizationalUnitName    = NowwweB

            commonName                = NowwweB.com

            emailAddress              = contact@nowwweb.com

        X509v3 extensions:

            X509v3 Subject Key Identifier:

                89:A7:C4:34:5F:2A:9A:E7:F9:F1:78:7A:D1:5B:F9:5C:C0:CA:EB:C8

            X509v3 Authority Key Identifier:

                keyid:89:A7:FA:34:51:1A:B5:F7:09:F1:78:7A:D1:FF:F8:5A:FF:CF:FB:58

            X509v3 Basic Constraints:

                CA:TRUE

Certificate is to be certified until Jul 21 10:39:18 2014 GMT (1095 days)

Write out database with 1 new entries

Data Base Updated

A l'issue du script, dans le sous-répertoire "demoCA" vous trouverez 2 fichiers :

./cacert.pem (la partie publique du certificat qui servira à signer les autres).
./private/cakey.pem (la clé privée).

-          Copiez le fichier "./cacert.pem" et le renommer en cacert.crt. Ce fichier devra être installé sur toutes les machines qui communiqueront avec des serveurs dont le certificat aura été signé par cette autorité. Voir : installation d'un certificat.

Votre autorité de certification est maintenant créée et prête à l'emploi.

Un problème ?

Vous vous être trompé ou souhaitez simplement recommencé. Mais la commande « CA.pl –newca » ne répond pas. Pour recommencer, supprimer tout les dossiers sauf, ./PEM  situés dans le répertoire « bin » de votre installation d’OpenSSL.

Créer un certificat pour votre serveur

La création de votre certificat serveur comporte 3 étapes :

  • Création d'une demande pour un nouveau certificat serveur auprès de l'autorité de certification.
  • Validation de la demande par l'autorité de certification.
  • Génération du certificat server complet intégrant la signature de l'autorité de certification.

Création d'une demande pour un nouveau certificat serveur

Vous allez maintenant demander un certificat pour votre serveur à l'autorité de certification que vous venez de créer dans l'étape précédente. C'est un peu comme remplir la carte d'identité du serveur qui sera validé par la suite.

Pour ce faire, exécutez la commande suivante (toujours à partir du répertoire bin) :

CA.pl -newreq

Tapez [Entree] et suivez les questions:

Loading 'screen' into random state - done
Generating a 1024 bit RSA private key
....................................................................++++++...++++++
writing new private key to 'newkey.pem'
Enter PEM pass phrase:                    <<
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:FR                                                       << Code du pays où se situe le serveur
State or Province Name (full name) [Some-State]:France                         << Nom du pays où se situe le serveur
Locality Name (eg, city) []:Paris                                                                  << Nom de la ville où se situe le serveur
Organization Name (eg, company) [Internet Widgits Pty Ltd]:NowwweB  << Nom de l'organisation possédant le serveur
Organizational Unit Name (eg, section) []:AdminsSys                               << Nom du service qui gère ce serveur dans l'organisation
Common Name (eg, YOUR name) []:ServeurTest.nowwweb.com           << Nom DNS ou l'adresse ip du serveur (Très important)
Email Address []:nicolas.compain@nowwweb.com                                << Adresse e-mail de contact du responsable pour ce serveur

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:NowwweB.com
Request is in newreq.pem, private key is in newkey.pem

 

Signer le certificat serveur avec votre clé d'autorité de certification

Cette étape consiste à faire reconnaître l'identité de votre serveur par l'autorité de certification.

Utiliser la commande suivante (toujours à partir du dossier ./bin d'OpenSSL) pour signer la demande avec l'autorité créée :

CA.pl -sign

Tapez [Entree] et suivez les questions:

C:OpenSSL-Win64in>CA.pl -sign
Using configuration from C:OpenSSL-Win64inopenssl.cfg
Loading 'screen' into random state - done
Enter pass phrase for ./demoCA/private/cakey.pem:  << Mot de passe donné lors de la création du certificat de l'autorité de certification
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number:
            f5:f5:c4:62:33:53:d8:ac
        Validity
            Not Before: Jul 24 17:00:05 2011 GMT
            Not After : Jul 21 17:00:05 2021 GMT
        Subject:
            countryName               = FR              
            stateOrProvinceName       = France 
            localityName              = Paris            
            organizationName          = NowwweB
             organizationalUnitName    =  AdminsSys 
            commonName                = ServeurTest.nowwweb.com
            emailAddress              = nicolas.compain@nowwweb.com
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                XR:B0:BF:2F:11:GA:47:H9:8C:F8:49:AB:YY:51:7C:5F:BD:FF:FF:48
            X509v3 Authority Key Identifier:
                keyid:FF:17:F8:F1:AF:1B:95:E7:09:F2:79:7A:DF:55:A9:66:66:5A:8B:D4

Certificate is to be certified until Jul 21 17:00:05 2021 GMT (3650 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y  << Code du pays où se situe le serveur
Write out database with 1 new entries
Data Base Updated
Signed certificate is in newcert.pem

Deux fichiers sont alors créés dans le répertoire <RepOpenSSL>/bin : newreq.pem et newreq.key.

Le fichier newcert.pem vous permettra par la suite de générer le certificat complet du serveur.

Génération du certificat server complet

Nous allons maintenant procéder à la création du certificat final qui devrat être installé sur votre serveur avec la commande suivante :

CA.pl -pkcs12 "nom d'usage"

Tapez [Entree] et suivez les questions.

Loading 'screen' into random state - done
Enter pass phrase for newkey.pem:  << clé de votre certificat serveur
Enter Export Password:                     << Optionnel
Verifying - Enter Export Password:    << La même chose au-dessus ^
PKCS #12 file is in newcert.p12

Le fichier newcert.p12 est créé.

C'est ce fichier qu'il faut installer sur le serveur (iniquement). Lors de l'installation (voir: installation d'un certificat), ne pas cocher la case "Activer la sécurité renforcée" : si cette option est cochée, le mot de passe de la clé privée serait demandée à chaque appel.

Conclusion

Félicitations, si vous avez suivi chaque étape à la lettre vous avez probablement réussi à reproduire toute la chaîne qui permet d'émettre et d'utiliser les certificats pour sécuriser les communications entre vos serveurs et ses clients. Cependant, personne n'est parfait, si vous voyez quelque chose d'incorrect ou précision quelconque à apporter, n'hésiter pas et publiez vos critiques en bas de la page je me ferais une joie de le les intégrer dans ce tutoriel.

Ecrit par Nicolas COMPAIN le 22/07/2011
Dernière modification le 29/07/2011
Categorie : Sécurisation de vos systèmes informatiques
Autres articles sur : SSL , OpenSSL , Certificat , Autorité de certification , Sécurisation

Commentaires


Agence web - Nos auteurs- Tutoriels- Mentions légales