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 :

  1. Apache 2.0.x sous WINDOWS
  2. OpenSSL (version binaire pour windows)
  3. PHP installé

Installation

  1. Décompresser OpenSSL dans un dossier nommé ssl à la racine de votre site.
  2. Copier les fichiers libeay32.dll et libssl32.dll du répertoire ssl dans votre dossier système. (C:\WINDOWS\System32\ - C:\WINNT\System32\ - etc...)
  3. Copier le fichier openssl de votre répertoire php/openssl/ dans le répertoire ssl que nous venons de créer.
  4. Copier le fichier mod_ssl.so dans le dossier Apache2/modules/
  5. Copier le fichier ssl.conf dans le dossier Apache2/conf/

Vous suivez toujours :b ?!
Ok alors on continue !

  1. Ouvrir un éditeur de texte basique (Bloc Notes/NotePad, Ultra edit, etc...)
  2. Copier ce qui suit et remplacer site par le nom de votre site
 
Sélectionnez

@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 :

  1. site.key
  2. site.cert
  3. .rnd
  4. 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

 
Sélectionnez

Listen 80

et ajoutez en dessous

 
Sélectionnez

Listen 443

afin qu'Apache écoute aussi ce port.

Recherchez la ligne

 
Sélectionnez

#LoadModule ssl_module modules/mod_ssl.so

puis décommentez là en enlevant le # devant.

Ajoutez les lignes suivantes à la fin de votre fichier httpd.conf :

 
Sélectionnez

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 :

  1. OpenSSL binaire pour Windows
  2. SSL.bat
  3. Extrait du httpd.conf (lignes à rajouter)
  4. Tous les fichiers
  5. Télécharger ce tutoriel au format PDF

N'oubliez pas ! Vous pouvez combiner ce tutoriel avec mon tutoriel sur les Virtual Host ici :
http://apache.developpez.com/cours/virtual-host/

LONGUE VIE À DEVELOPPEZ.COM !

Et un grand merci à toutes les personnes qui s'investissent dans cette communauté.