Section courante

A propos

Section administrative du site

Configuration d'Apache HTTPS/SSL dans Windows

Comment configurer le serveur Web Apache avec un HTTPS/SSL sous le système d'exploitation Windows (XP, 2000 Server, Vista, 7, 2008 Server,...), aussi bien sur un serveur que sur un poste local. Tout d'abord, nous supposons que la version 2 d'Apache est déjà installée.

Afin que le SSL dans le HTTPS fonctionne, nous avons besoin de télécharger (http://httpd.apache.org/download.cgi) et de configurer le binaire inclus avec OpenSSL dans votre «httpd/apache_x.x.x-win32-x86-openssl-x.x.x.msi» dans votre poste de travail ou serveur Windows.

Vous pouvez aussi installer OpenSSL en téléchargeant par exemple «openssl-0.9.8h-1-setup.exe» téléchargeable ici «http://gnuwin32.sourceforge.net/packages/openssl.htm» et en l'installant en mode «Administrateur». Dans les deux cas, si l'opération a fonctionner vous, vous constater en tapant «SET» sous l'interpréteur de commande, la variable «OPENSSL_CONF».

Vérifier que l'OpenSSL à sa variable d'environnement bien configuré

Ouvrir l'interpréteur de commande et taper l'emplacement où est situé les binaires de l'installation d'Apache. Vous aurez donc une commande ressemblant à ceci :

CD "C:\Program Files\Apache Software Foundation\Apache2.2\bin"

Pour effectuer la création du certificat SSL, nous aurons besoin de l'emplacement du fichier «openssl.cnf». Sur les versions plus anciennes du produit, il est configuré selon une distribution Linux, il faut donc aller changer le chemin pour un chemin Windows. Si cette situation s'applique à vous, vous aurez donc besoin d'ajuster la variable d'environnement Windows «OPENSSL_CONF» afin qu'elle pointe vers un emplacement comme ceci :

Emplacement Description
C:\Program Files\Apache Software Foundation\Apache2.2\conf\openssl.cnf Apache 2.2 classiques
C:\wamp\bin\apache\Apache2.2.14\conf\openssl.cnf WAMP avec Apache 2.2.14
... ...

Vous utiliserez donc une commande ceci :

SET OPENSSL_CONF=C:\Program Files\Apache Software Foundation\Apache2.2\conf\openssl.cnf

Nous assumons que tous les fichiers générés par la commande résident dans le fichier «C:\Program Files\Apache Software Foundation\Apache2.2\bin».

Créer un certificat SSL signé en utilisant OpenSSL

Maintenant que la variable d'environnement est correctement configurée, vous aurez besoin de créer un certificat SSL à l'aide d'OpenSSL en utilisant une commande ressemblant à ceci :

openssl req -new -out server.csr

Il vous posera quelques questions et vous pouvez ignorer ou simplement répondre :

Maintenant, nous devons supprimer le mot de passe de la clef privée. Le fichier «server.key» créé à partir de la commande suivante doit être lisible seulement à partir du serveur Web apache et de l'administrateur. Vous devez également supprimer le fichier «.rnd» car il contient les informations d'entropie pour créer la clef et pourrait être utilisé pour des attaques cryptographiques contre votre clef privée. Ensuite, tapez la commande suivante :

openssl rsa -in privkey.pem -out server.key

Maintenant, nous avons besoin d'ajuster la date d'expiration, elle doit être n'importe lequel de votre choix. Nous allons choisir 365 jours :

openssl x509 -in server.csr -out server.cert -req -signkey server.key -days 365

Nous avons maintenant un certificat SSL signé prêt à être utilisé. Nous avons besoin de déplacer les fichier de certificat «server.cert» et «server.key» à un emplacement facile à trouver par exemple :

C:\Program Files\Apache Software Foundation\Apache2.2\conf

Configuration d'Apache pour exécuter SSL/HTTPS

Maintenant que nous avons un certificat SSL signé prêt à utiliser, nous avons besoin de configurer Apache pour démarrer le serveur SSL. Vous devrez donc modifier le fichier de configuration ressemblant à l'emplacement suivant «C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf».

Ouvrir le fichier «conf\httpd.conf» dans un éditeur de texte et rechercher l'emplacement de la ligne suivante :

#LoadModule ssl_module modules/mod_ssl.so

Et enlever le caractère «#» au début de la ligne, indiquant qu'il s'agit d'une remarque afin qu'il soit maintenant pris en compte de la façon suivante :

LoadModule ssl_module modules/mod_ssl.so

Cherchez maintenant l'emplacement suivant de la ligne suivante :

#Include conf/extra/httpd-ssl.conf

Et enlever le caractère «#» au début de la ligne, indiquant qu'il s'agit d'une remarque afin qu'il soit maintenant pris en compte de la façon suivante :

Include conf/extra/httpd-ssl.conf

Maintenant, nous allons modifier le fichier de configuration «httpd-ssl.conf» indiqué situé par exemple à l'emplacement suivant : «C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra\httpd-ssl.conf». Nous allons laisser le paramètre par défaut en changeant uniquement les noms de domaines et les chemins d'accès :

<VirtualHost _default_:443>
   ServerAdmin some@email.com
   DocumentRoot "Your Root folder location"
   ServerName www.mondomaine.com:443
   ServerAlias mondomaine.com:443
   ErrorLog "logs/anyFile-error.log"
   CustomLog "logs/anyFile-access.log" common
   SSLEngine on

   SSLCertificateFile "C:/Program Files/Apache Software Foundation/Apache2.2/conf/server.cert"

   SSLCertificateKeyFile "C:/Program Files/Apache Software Foundation/Apache2.2/conf/server.key"
</VirtualHost>

ATTENTION ! Assurer vous que vous avez correctement indiqué l'emplacement des fichiers «SSLCertificateFile» et «SSLCertificateKeyFile», car si vous avez une simple petite erreur d'un espace de trop, le chargement du serveur Web plante !

Ouvrir le port HTTPS avec SSL dans Windows

Nous avons besoin de créer une exception dans le mur de feu du système d'exploitation (Windows Firewall) pour le port 443. Pour se faire, nous pouvez aller dans le «Panneau de contrôle» et ajouter un port à la section des exceptions.

Finalisation

Vous devez maintenant redémarrer le serveur Web apache pour que les modifications soient prises en compte.

Remarques

Voir également

Référence des opérations
Index des extensions de fichier - Format de fichier: httpd.conf

Dernière mise à jour : Vendredi, le 12 juin 2015