La mise en place du protocole HTTPS et SSL dans un serveur Apache, a pour principale objectif la sécurisation des échanges entre le client et le serveur.
Cette sécurisation se fait à travers un échange de clé publique pour crypter et décrypter les messages!
Dans la pratique, l’installation est plus ou moins simple à faire.
L’environnement :
- OS: RedHat
- Serveur http : Apache
- Certificat auto Signé
Pour commencer, il faut que le module SSL soit bien chargé dans apache et open SSL est installé sous RedHat ! Si ce n’est pas le cas, vous pouvez suivre le tutoriel suivant : http://dev.antoinesolutions.com/openssl
Une des bonnes pratique dans la configuration de Apache est l’utilisation de la directive Include
Par défaut, Apache charge le fichier de configuration /etc/httpd/conf/httpd.conf, dans ce fichier rajouter la ligne suivante :
Include conf.d/*.conf
Cette pratique vous permettra de définir dans le répertoire conf.d/ l’ensemble de configuration pour tes sites. Par exemple un fichier de conf pour SSL , un autre pour les Virtuel host etc…
Dans notre cas, on aura dans ce répertoire deux fichier :
- mesSites.conf : Un fichier contenant l’ensemble des virtuels host définis dans le serveur
- ssl.conf : Définit la configuration SSL.
Pour bien préparer tout les prérequis avant la configuration du HTTPS, il faut commencer par la création d’un certificat auto-signé :
La génération de la clé privée
openssl genrsa -des3 -out votreCléPrivée.key 1024
La génération du certificat publique
openssl req -new -x509 -days 365 -key votreCléPrivée.key -out votreCertificat.crt
Ces deux fichiers sont à placer dans des répertoires spécifiques :
- /etc/ssl/certs : Pour les certificats publiques
- /etc/ssl/private : Pour la clé privée.
La configuration SSL
Le certificat est maintenant généré, on peut à présent définir le contenu du fichier SSL.conf
#Chargement du module
SSLLoadModule ssl_module modules/mod_ssl.so
#Ecouter le port SSL 443
Listen 443
# Ajout des MIME type pour le téléchargement des certificats
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
#Définition du cache
SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout 300
Aussi
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/ssl/certs/votreCertificat.crt
SSLCertificateKeyFile /etc/ssl/private/votreCléPrivée.key
<Files ~ « \.(cgi|shtml|phtml|php3?)$ »>
SSLOptions +StdEnvVars
</Files>
<Directory « /var/www/cgi-bin »>
SSLOptions +StdEnvVars
</Directory>
Vous pouvez trouver un exemple complet du fichier SSL dans le lien
Le fichier Virtuel Host
Le fichier mesSites.conf aura la forme suivante :
NameVirtualHost *:443
<VirtualHost *:443>
DocumentRoot /www/example.com
ServerName www.example1.com
# Autres directives ici
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /www/example.org
ServerName www.example2.org
# Autres directives ici
</VirtualHost>
2 Comments Add Yours