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:
|
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:
|
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"
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/Apache
2.4.2
/conf/cert/certificat.crt"SSLCertificateKeyFile
"c:/wamp/bin/apache/Apache
2.4.2
/conf/key/private.key"<Directory
"c:/wamp/www/"
>
CustomLog
"C:/wamp/bin/apache/Apache
2.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...).