Dans ce tutoriel, il est montré comment sécuriser un serveur Web Apache avec Ubuntu 18.04 via l'installation d'un certificat Secure Sockets Layer (SSL). De nos jours, l'activation d'une connexion cryptée au serveur Web est fondamentale car elle vous permet d'utiliser le protocole sécurisé HTTPS pour votre site Web.
Pour ce faire, Let's Encrypt, une autorité de certification qui délivre un certificat gratuit entièrement conforme aux normes de sécurité requises, sera utilisée. Let's Encrypt simplifie le processus d'installation du certificat de sécurité pour aider même l'utilisateur le moins expérimenté à sécuriser un site Web grâce à l'utilisation du client Certbot.
Connectez-vous d'abord à votre serveur via une connexion SSH. Si vous ne l'avez pas encore fait, il est recommandé de suivre notre guide pour vous connecter en toute sécurité avec le protocole SSH. Dans le cas d'un serveur local, passez à l'étape suivante et ouvrez le terminal de votre serveur.
Installer CertBot
Ajouter le référentiel Certbot.
$ sudo add-apt-repository ppa:certbot/certbot
À ce stade, installez Certbot en utilisant apt :
$ sudo apt install python-certbot-apache
Une fois l'installation terminée, vous pouvez procéder à la configuration du pare-feu.
Configuration du pare-feu
En cas de pare-feu sur votre système, configurez-le pour autoriser le trafic HTTP et le trafic HTTPS sur votre machine.
Lorsque vous utilisez le pare-feu UFW, des profils préinstallés seront disponibles pour Apache. Voyons donc comment les activer.
Pour vérifier les profils disponibles installés sur le pare-feu UFW, exécutez cette commande :
$ sudo ufw app list
Une liste semblable à la suivante s'affichera à l'écran :
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
Pour autoriser le trafic HTTP (Port 80) et HTTPS (Port 443), utilisez le profil "Apache Full".
Vérifiez les informations de votre profil comme suit :
$ sudo ufw app info "Apache Full"
La description du profil à l'écran apparaît :
Profile: Apache Full
Title: Web Server (HTTP,HTTPS)
Description: Apache v2 is the next generation of the omnipresent Apache web
server.
Ports:
80,443/tcp
Après avoir vérifié le profil, il peut être activé :
$ sudo ufw allow in "Apache Full"
Création du certificat SSL
À ce stade, demandez le certificat du domaine que vous souhaitez protéger à l'aide du Certbot précédemment installé.
Remplacez TUODOMINIO.IT par le nom de domaine que vous souhaitez protéger :
$ sudo certbot --apache -d TUODOMINIO.IT -d www.TUODOMINIO.IT
N. B. le libellé --apache spécifie le Certbot pour utiliser le plugin Apache, tandis que le libellé -d indique les noms de domaine pour lesquels le certificat sera utilisé.
A ce stade, indiquez votre adresse e-mail, acceptez les conditions d'utilisation et indiquez si vous souhaitez rediriger les connexions vers votre site Web vers une connexion HTTPS.
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - No further changes to the webserver configuration.
2: Redirect - To redirect all requests to secure HTTPS access. Choose this option fornew websites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
N. B. S'il existe déjà un CMS ou un script sur votre site, il est recommandé de suivre notre guide pour vérifier s'il est compatible avec une connexion HTTPS avant de rediriger le trafic.
Entrez le numéro correspondant à votre choix et, si la procédure aboutit. un message de confirmation s'affichera à l'écran.
Vérifier le renouvellement du certificat
Les certificats SSL de Let's Encrypt sont valables 90 jours après quoi ils doivent être renouvelés. Certbot s'occupe également du renouvellement automatique des certificats mais pour s'assurer que la procédure fonctionne correctement, en suivant notre guide il est recommandé d'essayer manuellement de renouveler le certificat de cette manière :
$ sudo certbot renew --dry-run
Si aucune erreur ne s'affiche, le renouvellement a réussi. Dans le cas contraire, un email sera envoyé à l'adresse saisie lors de la création du certificat, lorsque son expiration approche.