Vous êtes ici :
Accueil Tutoriel Développement web Configuration d'un certificat auto-signé SSL sous WAMP

Configuration d'un certificat auto-signé SSL sous WAMP

Ce petit tutoriel va vous montrer comment installer et configurer un certificat SSL auto-signé sous WAMP (Windows Apache MySQL PHP).

Introduction

Installer un certificat SSL sous un serveur WAMP (Windows Apache MySQL PHP) est relativement simple et ne prend que quelques minutes, nous allons donc voir ici comment générer un certificat auto-signé avec l’outil OpenSSL et comment l’installer et configurer. A noter que cette manipulation ne pourra remplacer un vrai certificat acheté auprès d’une autorité de certification.

Une remarque avant de commencer, selon votre version de WAMP les chemins vers les différents fichiers/dossiers peuvent changer, ici j’utilise WAMP 2.5 qui est installé par défaut dans C:\wamp avec comme spécification :

  • Apache 2.4.9 => C:\wamp\bin\apache\apache2.4.9
  • PHP 5.5.12 =>  C:\wamp\bin\php\php5.5.12
  • MySQL 5.6.17 => C:\wamp\bin\mysql\mysql5.6.17

NB : Donc adaptez le chemin selon la version de  WAMP installée sur votre machine

Les premières étapes sont des commandes DOS, la première chose est donc d’ouvrir une invite de commande MS DOS (Démarrer -> Exécuter -> cmd -> OK ou l’équivalent).

Se rendre dans le répertoire d’apache

cd C:\wamp\bin\apache\apache2.4.9\bin

Générer la clé privée

On va commencer par générer la clé privée, elle se trouvera dans le fichier « private.key » ici le chiffrage est de 2048 bits:

openssl genrsa -aes256 -out private.key 2048

On vous demande de saisir un mot de passe pour protéger la clé privée.

Si vous rencontrez l’erreur « L’ordinal 296 …. SSLEAY32.dll »:

Erreur SSL

La solution est de se rendre sur cette page: http://slproweb.com/products/Win32OpenSSL.html et de télécharger Win32 OpenSSL v1.0.0k Light ou équivalent une fois installé il faut se déplacer dans le répertoire/sous-répertoires d’installation afin de copier les fichiers suivants:

ssleay32.dll

libeay32.dll

openssl.exe

Pour les coller dans le dossier C:\wamp\bin\apache\apache2.4.9\bin (en confirmant les remplacements). Le problème devrait alors être corrigé et la commande précédente va devoir s’exécutée correctement.

Supprimer la passphrase

On va libérer la clé privée de la « passphrase » qui la protège.

openssl rsa -in private.key -out private.key

Générer le certificat auto-signé

Nous allons ici générer le certificat auto-signé qui servira à certifier la connexion et à en chiffrer les échanges.

Ici le certificat sera valide 100 ans, remplacez donc 36500 par le nombre de jours de validité du certificat. Ensuite l’invite de commande vous demandera quelques informations libres à vous de les saisir mais pour la question concernant   “Common Name” saisissez localhost comme réponse. Le fichier de notre certificat portera le nom: « certificat.crt »

openssl req -new -x509 -nodes -sha1 -key private.key -out certificat.crt -days 36500 -config C:\wamp\bin\apache\apache2.4.9\conf\openssl.cnf

Copier le certificat et la clé privée

Maintenant que notre certificat et notre clef privée sont générés il nous faut les stocker sur le serveur. Pour ce faire rendez-vous dans le dossier C:\wamp\bin\apache\apache2.4.9\conf et créez deux dossiers « cert » et « key ».

- Copier certificat.crt dans le dossier « cert »

- Copier private.key dans le dossier « key »

Édition des fichiers de configurations

Afin d’installer notre certificat, nous devons éditer trois fichiers de configuration, les deux premiers permettrons d’activer SSL pour Apache et PHP et le troisième permettra d’installer le certificat sur le serveur.

  • Editer C:\wamp\bin\apache\apache2.4.9\conf\httpd.conf

Décommenter les lignes (enlever le « # ») suivantes :

LoadModule ssl_module modules/mod_ssl.so

Include conf/extra/httpd-ssl.conf
  • Editer C:\wamp\bin\apache\apache2.4.9\bin\php.ini

Dé-commenter la ligne (enlever le « ; ») suivante

extension=php_openssl.dll
  • Editer C:\wamp\bin\apache\apache2.4.9\conf\extra\httpd-ssl.conf

Rechercher la ligne:

Sous cette ligne, effectuer les recherche/remplacement suivant:

Remplacer la ligne « DocumentRoot … » par:

DocumentRoot "C:/wamp/www/"

Remplacer la ligne « ServerName … » par:

ServerName localhost:443

Remplacer la ligne « ErrorLog … » par:

ErrorLog "c:/wamp/bin/apache/apache2.4.9/logs/ssl_error.log"

Remplacer la ligne « TransferLog … » par:

TransferLog "c:/wamp/bin/apache/apache2.4.9/logs/ssl_access.log"

Remplacer la ligne « SSLCertificateFile … » par:

SSLCertificateFile "c:/wamp/bin/apache/apache2.4.9/conf/cert/certificat.crt"

Remplacer la ligne « SSLCertificateKeyFile … » par:

SSLCertificateKeyFile "c:/wamp/bin/apache/apache2.4.9/conf/key/private.key"

Remplacer la ligne « <Directory …> » par:

<Directory "c:/wamp/www/">

Remplacer la ligne « CustomLog … » par:

CustomLog "C:/wamp/bin/apache/apache2.4.9/logs/ssl_request.log"  

Attention gardez la ligne avec l’antislash.

 Voici quelques explications concernant les paramètres que l’on vient de modifier:

DocumentRoot: définit le dossier racine du serveur.

ServerName: définit le nom du serveur et son port d’écoute (443 étant le port SSL par défaut).

ErrorLog: définit l’emplacement du fichier journal des erreurs.

TransferLog: définit l’emplacement du fichier journal des accès.

SSLCertificateFile: définit l’emplacement du fichier du certificat.

SSLCertificateKeyFile: définit l’emplacement du fichier de la clef privée.

<Directory …>: définit les propriétés du dossier racine du serveur.

CustomLog: définit l’emplacement du fichier journal des requêtes.

Vérifier la configuration

Toujours dans l’invite de commande DOS tapez la commande suivante

httpd -t

Cette dernière doit retourner « Syntax OK », si tel n’est pas le cas, il doit y avoir une erreur dans le fichier « httpd-ssl.conf », il faut donc retourner à l’étape précédente et vérifier la configuration.

Redémarrer WAMP

Il faut redémarrer WAMP afin que les différentes modifications soient prises en compte.

 L’accès à https://localhost/ doit être possible

Le message suivant nous indique que la connexion n’est pas certifiée, il faut accepter les risques, c’est normal puisque notre certificat est auto-signé. Cette erreur n’apparaîtrait pas si le certificat aurait été acheté auprès d’une autorité de certification.

Ici l’exemple du navigateur Firefox Mozilla cliquer sur « Je comprends les risques » pour ajouter une exception pour ce certificat, sous d’autres navigateurs la procédure est presque identique.

Voilà, votre certificat est installé et configuré avec succès.




Tony NGUEREZA 14 Nov 2017, 04h42

Aucun commentaire n'a encore été ajouté soyez le premier a ajouté un commentaire

Vous n'êtes pas connecter veuillez vous connecter ou créer gratuitement un compte pour poster des commentaires

Vous êtes ici :
Accueil Tutoriel Développement web Configuration d'un certificat auto-signé SSL sous WAMP