jeudi 6 février 2014

Installer un certificat SSL sous Windows (wampserver)

Cet article est inspiré de l'excellent tutoriel de Florian Bogey disponible ici: http://www.blog.florian-bogey.fr/installer-un-certificat-ssl-sous-wamp.html.
Le tutoriel n'ayant pas marché pour moi car version d'apache moins récente, donc tuto incomplet, j'ai décidé de le reprendre et le compléter pour tous ceux et celles qui rencontreraient et rencontreront le même problème.

NB: La version d'apache utilisée ici, est la 2.4.2 et celle de php, 5.4.3 (sous Wamp).
Selon votre version d’Apache les chemins vers les différents fichiers/dossiers peuvent changer.

Commençons.
Installer un certificat SSL sous un serveur wamp (Windows), ne prend que quelque minutes, nous verrons donc comment générer un certificat auto-signé avec OpenSSL et comment l'installer.


1. Installer OpenSSL 

Pour installer OpenSSL, rendez-vous ici: http://slproweb.com/products/Win32OpenSSL.html.
Créez une variable d'environnement relative dans le path windows, si ce n'est pas déjà fait (exemple de définition de variable d'environnement http://sametmax.com/ajouter-un-chemin-a-la-variable-denvironnement-path-sous-windows/).


2. Ouvrir la console windows

Ouvrez votre utilitaire en ligne de commande (Démarrer -> Exécuter -> Cmd -> Ok).
Si en tapant directement openssl, des informations liées s'affichent, vous avez bien réussi la première étape.


1
openssl
 

3. Se rendre dans le répertoire d'apache

Ouvrez votre utilitaire en ligne de commande (Démarrer -> Exécuter -> Cmd -> Ok), puis tapez:


1
cd C:\wamp\bin\apache\Apache2.2.21\bin


4. Générer la clé privée

Nous allons maintenant générer la clé privée, elle se trouvera dans le fichier "private.key", et notre clé sera de 2048 bits.

1
openssl genrsa -aes256 -out private.key 2048


5. Supprimer la passphrase

Nous allons ensuite libérer la clé privée de la "passphrase" qui la protège en tapant ceci:

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




6. Générer le certificat auto-signé

Maintenant, nous devons générer le certificat auto-signé qui servira à certifier la connexion et chiffrer nos échanges.

Nous fixerons ici, la durée de vie du certificat à 100 ans, libre à vous de modifier le paramètre 36500. Le certificat généré s'appellera "certificat.crt".
Tapez cette commande et laissez-vous guider dans les étapes:

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






7. Copier le certificat et la clé privée

Notre certificat a été généré, il nous faut maintenant stocker ce certificat et sa clé privée dans le serveur.
Rendez-vous sous "C:\wamp\bin\apache\apache2.4.2\conf" et créer deux répertoires, "Cert" et "Key".

Copiez certificat.crt dans le répertoire "Cert".
Copiez private.key dans le répertoire "Key".

8. Edition des fichiers de configuration

Nous devons maintenant installer notre certificat et le paramétrer en éditant des fichiers de configuration.
  • Décommentez les lignes suivantes dans le fichier "C:\wamp\bin\apache\apache2.4.2\conf\httpd.conf"
    • 1
      LoadModule ssl_module modules/mod_ssl.so
    • 1
      Include conf/extra/httpd-ssl.conf
    • 1
      LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

  • Décommentez cette ligne dans le fichier "C:\wamp\bin\php\php5.4.3\bin\php.ini"
    • 1
      extension=php_openssl.dll
       


  • Editez le fichier "C:\wamp\bin\apache\apache2.4.2\conf\extra\httpd-ssl.conf"
           Recherchez et remplacez les mots en gras ci-dessous, par:
    • DocumentRoot "c:/wamp/www/"
    • ServerName localhost:443
    • ErrorLog "c:/wamp/bin/apache/Apache2.4.2/logs/ssl_error.log"
    • TransferLog "c:/wamp/bin/apache/Apache2.4.2/logs/ssl_access.log"
    • SSLCertificateFile "c:/wamp/bin/apache/Apache2.4.2/conf/cert/certificat.crt"
    • SSLCertificateKeyFile "c:/wamp/bin/apache/Apache2.4.2/conf/key/private.key"
    • <Directory "c:/wamp/www/">
    • CustomLog "C:/wamp/bin/apache/Apache2.4.2/logs/ssl_request.log" \



9. Vérifier la configuration

Une fois ces modifications apportées, nous devons nous assurer qu'aucune erreur ne s'est glissée en chemin.Pour celà, tapez la commande:

1
httpd -t

Vous devez recevoir en retour "Syntax ok".
Si ce n'est pas le cas, une erreur s'est glissée dans le fichier "httpd-ssl.conf".
Aidez-vous du message d'erreur retourné.


10. Redémarrer Wamp

Redémarrer wamp, au besoin, quitter l'application et relancez-la.


11. L'accès à https://localhost doit être possible

Vous devrez obtenir la fenêtre suivante, acceptez le certificat.
Vous avez cette alerte car le certificat est auto-signé, elle n'apparaîtra si vous achetez votre certificat auprès d'une autorité reconnue (hébergeur etc...).

firefox erreur certificat SSL

1 commentaire: