Avant-propos▲
Il existe beaucoup de « tout en un » pour installer Apache + PHP + Perl + MySQL + mod_ssl + etc. Mais aucun ne vous convient. Vous préférez tout faire vous-même et vous avez bien raison.
C'est un bon casse-tête que d'installer mod_ssl sur un serveur Apache 2.0.x sur Windows. Quelle source choisir ? Comment faire ? Est-ce que ça marche vraiment ?
Tout au long de ce tutoriel, vous allez voir que ce n'est pas si compliqué que ça et même très simple.
Ce qu'il vous faut▲
Voici les différents éléments nécessaires :
- Apache 2.0.x sous WINDOWS ;
- OpenSSL (version binaire pour Windows) ;
- PHP installé.
Installation▲
- Décompresser OpenSSL dans un dossier nommé ssl à la racine de votre site.
- Copier les fichiers libeay32.dll et libssl32.dll du répertoire ssl dans votre dossier système. (C:\WINDOWS\System32\ - C:\WINNT\System32\ - etc.)
- Copier le fichier openssl de votre répertoire php/openssl/ dans le répertoire ssl que nous venons de créer.
- Copier le fichier mod_ssl.so dans le dossier Apache2/modules/
- Copier le fichier ssl.conf dans le dossier Apache2/conf/
Vous suivez toujours :b ?!
OK alors on continue !
- Ouvrir un éditeur de texte basique (Bloc Notes/NotePad, Ultra edit, etc.)
- Copier ce qui suit et remplacer site par le nom de votre site
@echo off
openssl req -config openssl.cnf -new -out site.csr
pause && cls
openssl rsa -in privkey.pem -out site.key
openssl x509 -in site.csr -out site.cert -req -signkey site.key -days 365
openssl x509 -in site.cert -out site.der.crt -outform DER
pause && exit
Sauvegarder le fichier sous SSL.bat dans votre répertoire ssl. ATTENTION ne pas l'enregistrer sous SSL.bat.txt sinon ce n'est pas prêt de fonctionner ;)
Suivez les instructions à l'écran DOS.
Une fois tout ceci renseigné, il devrait y avoir ces fichiers dans le répertoire ssl :
- site.key ;
- site.cert ;
- .rnd ;
- Et deux ou trois autres fichiers qui ne nous intéressent pas ;)
Avant tout, effacez le fichier .rnd et créez un autre dossier ssl dans le répertoire conf d'Apache2 (Apache2/conf/). Copiez-y les fichiers site.key et site.cert.
Allez encore un petit effort on y est presque ;)
Stoppez Apache et ouvrez votre fichier httpd.conf
Recherchez la ligne
Listen
80
et ajoutez en dessous
Listen
443
afin qu'Apache écoute aussi ce port.
Recherchez la ligne
#LoadModule ssl_module modules/mod_ssl.so
puis décommentez-la en enlevant le # devant.
Ajoutez les lignes suivantes à la fin de votre fichier httpd.conf :
SSLMutex
default
SSLRandomSeed
startup builtin
SSLSessionCache
none
<VirtualHost 127.0.0.1:443>
SSLEngine
On
SSLCertificateFile
conf/ssl/site.cert
SSLCertificateKeyFile
conf/ssl/site.key
</VirtualHost>
Voilà ! Si vous avez tout bien suivi correctement, si vous tapez l'URL https://127.0.0.1/ dans votre navigateur, vous devriez voir la fenêtre avec votre certificat et ainsi basculer en mode https :D !
Comme vous l'avez sûrement remarqué, votre certificat n'est pas valide et encore heureux ! Imaginez l'escroquerie si c'était aussi simple de créer un certificat valide.
Les fichiers de ce tutoriel▲
Vous pouvez télécharger les fichiers de ce tutoriel ci-dessous :
- OpenSSL binaire pour Windows
- SSL.bat
- Extrait du httpd.conf (lignes à rajouter)
- Tous les fichiers
- Télécharger ce tutoriel au format PDF
N'oubliez pas ! Vous pouvez combiner ce tutoriel avec mon tutoriel sur les Virtual Host ici :
https://apache.developpez.com/cours/virtual-host/
LONGUE VIE À DEVELOPPEZ.COM !
Et un grand merci à toutes les personnes qui s'investissent dans cette communauté.