Configurer HTTPS et SSL sous Apache et RedHat

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

Leave a comment