
Ce petit tutoriel va vous montrer comment installer et configurer un certificat SSL auto-signé sous WAMP (Windows Apache MySQL PHP).
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 :
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).
cd C:\wamp\bin\apache\apache2.4.9\bin
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 »:
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.
On va libérer la clé privée de la « passphrase » qui la protège.
openssl rsa -in private.key -out private.key
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
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 »
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.
Décommenter les lignes (enlever le « # ») suivantes :
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
Dé-commenter la ligne (enlever le « ; ») suivante
extension=php_openssl.dll
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.
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.
Il faut redémarrer WAMP afin que les différentes modifications soient prises en compte.
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