Créer un certificat SSL reconnu (Apache)
Hello World !
Comme vous pouvez surement le constater, j’ai récemment fait l’acquisition d’un certificat SSL pour mon blog et l’ensemble des services hébergés sous le nom de domaine mydoom666.com.
Pourquoi ce changement ?
A la base, j’avais un certificat auto-signé par mes soins pour protéger mon espace PhpMyAdmin et Tiny Tiny RSS. L’objectif étant :
- De chiffrer et protéger les données transmises sur Internet et permettre de garantir aux utilisateurs qu’ils ont accès à un site légitime.
- D’éviter que les données sensibles soient interceptées ou altérées de manière frauduleuse.
Jusqu’ici tout fonctionnait très bien. Puis un jour (hier), j’ai décidé sur un coup de tête d’acheter un certificat SSL reconnu par une autorité de certification : GeoTrust (RapidSSL) pour un peu moins de 8€/an.
Franchement… Je trouve que c’est vraiment accessible et que la plupart des webmestres devraient essayer de s’en procurer un. C’est tout aussi cher qu’un nom de domaine et cela apporte un gain de sécurité non négligeable !
Installer le certificat sur un serveur web Apache
mkdir -p /etc/apache2/ssl/toto.fr/ cd /etc/apache2/ssl/toto.fr/
Créer la clé privée et le fichier de demande de signature de certificat (CSR Certificate Signing Request) :
openssl genrsa 2048 > private.key openssl req -new -key private.key > mydoom666.com.csr
Lors de la création du certificat SSL sur NameCheap, j’ai dû faire un copier/coller du contenu de mydoom666.com.csr (CSR) sur le site et valider. Suite à ça, j’ai reçu quelques minutes plus tard un mail contenant le certificat et le certificat intermédiaire.
- Copier le certificat et l’enregistrer sous le nom : public.crt
- Copier le certificat intermédiaire et l’enregistrer sous le nom intermediate.crt
Configuration de Apache
Activer le module SSL :
a2enmod ssl
Puis éditer le virtualhost du domaine :
nano /etc/apache2/sites-available/toto.fr
<VirtualHost x.x.x.x:80> ServerAdmin contact@toto.fr ServerSignature off ServerName toto.fr ServerAlias www.toto.fr Redirect permanent / https://toto.fr/ </VirtualHost>
<VirtualHost x.x.x.x:443> ServerAdmin contact@toto.fr DocumentRoot /home/toto/www/ ServerSignature off ServerName toto.fr ServerAlias www.toto.fr
<Directory /> Options FollowSymLinks -Indexes AllowOverride None Order allow,deny allow from all </Directory>
LogLevel warn CustomLog /var/log/apache2/toto.fr_access.log combined ErrorLog /var/log/apache2/toto.fr_error.log
###################################
SSLEngine on SSLProtocol all SSLCertificateFile /etc/apache2/ssl/toto.fr/public.crt SSLCertificateKeyFile /etc/apache2/ssl/toto.fr/private.key SSLCACertificateFile /etc/apache2/ssl/toto.fr/intermediate.crt ###################################
</VirtualHost>
Puis redémarrer Apache pour prendre en compte les modifications :
/etc/init.d/apache2 reload
Tadaaaam !
J’ai peut-être oublié de détailler certaines choses… (trop la flemme ! oublie !) mais surement rien de bien important. Comme par exemple penser à ouvrir le port 443 pour HTTPS… Ou alors, n’hésitez pas à me le signaler en commentaire.
Bisous.