Vous êtes ici

Apache sous Linux : Activer le HTTPS sur vos sites

Récemment, des moteurs de recherche comme Google ont décidé de mieux référencer les sites web sécurisés que les sites non sécurisés. De plus, les problémes de sécurités sont un phénoméne grandissant sur internet. Nous allons donc voir comment passer votre site internet executé par apache sous une machine Linux en https à l'aide de SSL.

 

 

1) Activer le module SSL sur apache : 

 

sudo a2enmod ssl

 

sudo service apache2 restart

 

2) Créer un certificat pour votre site (ce certificat sera auto-signé, une erreur sera visible sur les navigateurs, vous pouvez obtenir un certificat signé par un organisme tier chez un hébergeur) 

 

sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/private/le-gas.pem

 

Attention, une invite va vous demander de specifier le nom d’hôte, il faut absolument mettre l’adresse exact de votre site en tant que nom d’hôte, pour mon cas, ce sera : le-gas.fr

 

3) Configurer Apache 

 

placez vous dans le repertoire des sites activés sur apache : /etc/apache2/sites-available

 

et ajoutez y un fichier (ou modifier le fichier default) avec :

 

<VirtualHost *:443>

        DocumentRoot /home/legas/

        Servername le-gas.fr

        SSLEngine on

        SSLCertificateFile /etc/ssl/private/le-gas.pem

        <Directory />

                Options FollowSymLinks

                AllowOverride None

        </Directory>

</VirtualHost>

 

Puis redémarrer apache : sudo service apache2 restart

 

Dans mon cas, j’ai un hôte virtuel de déclaré, cependant si ce n’est pas votre cas, vous pouvez supprimer la ligne Servername. J'utilise également uniquement un Fichier de certificat et pas de fichier contenant une clé privée. Dans ce cas il faut ajouter la ligne SSLCertificateKeyFile.

 

Résumé des options possibles concernant la protection par SSL :

 

SSLEngine : permet d'activer ou pas le moteur SSL , les possibilités sont On ou Off

 

SSLCertificateFile : Fichier permettant de définir le certificat qui authentifie le serveur au client, généralement fichier ayant pour extension .pem ou .crt

 

SSLCertificateKeyFile : Fichier permettant de définir la clé privée permettant de signer les échanges entre client et serveur, generalement fichier ayant pour extension .key

 

Par exemple si vous passez par un organisme de verification de certificats tiers, votre fichier peut ressembler à ça :

 

<VirtualHost *:443>

        DocumentRoot /home/legas/~aurelien/drupal7/

        Servername le-gas.fr

        SSLEngine on

        SSLCertificateFile /etc/ssl/le-gas.fr.crt

        SSLCertificateKeyFile /etc/ssl/le-gas.fr.key

        SSLCACertificateFile /etc/ssl/XXXXSSLCA.pem

        SSLVerifyClient None

        <Directory />

                Options FollowSymLinks

                AllowOverride None

        </Directory>

</VirtualHost>

 

La ligne SSLCACertificateFile permet de définir le fichier certificat permettant la verification par l'organisme tiers.

 

La ligne SSLVerifyClient permet de définir si il faut vérifier ou non le certificat coté client. 

 

Le-gas.fr est maintenant disponible en https : https://le-gas.fr

 

Tags: 

www.le-gas.fr : Le guide de l'admin Systeme