Comment sécuriser Apache avec Let's Encrypt sur Ubuntu (Certificat SSL)

Security

lets-encrypt

 

Comment Obtenir un certificat SSL Gratuitement.

Let's Encrypt est une autorité de certification (CA) qui fournit un moyen facile d'obtenir et d'installer des certificats TLS/SSL gratuits, permettant ainsi le cryptage HTTPS du traffic sur les serveurs Web. Il simplifie le processus en fournissant un logiciel client, Certbot qui est open-source, il tente d'automatiser la plupart (sinon toutes) les étapes requises. Actuellement, l'ensemble du processus d'obtention et d'installation d'un certificat est entièrement automatisé sur Apache et Nginx.

Dans ce didacticiel, nous utiliserons Certbot pour obtenir un certificat SSL gratuit pour Apache sur Ubuntu et configurer votre certificat pour qu'il se renouvelle automatiquement.

Ce didacticiel utilisera un fichier d'hôte virtuel Apache distinct au lieu du fichier de configuration par défaut (000-default.conf). Il est recommander de créer de nouveaux fichiers d'hôte virtuel Apache pour chaque domaine, car cela permet d'éviter les erreurs courantes et de conserver les fichiers par défaut en tant que configuration de secours.

Conditions préalables

Les condition prealable pour suivre ce tutoriel sont les suivent :

  • 👉Une machine ou un server avec un system Ubuntu bien installe, y compris un utilisateur sudo non root et un pare-feu.
    👉Un nom de domaine entièrement enregistré. Ici nous utiliserons votre votre_domaine comme exemple tout au long. Vous pouvez acheter un nom de domaine sur iPage, en obtenir un gratuitement sur Freenom ou utiliser le registraire de domaine de votre choix.
    👉Avoir les deux entrees DNS suivants configurés pour votre serveur. 
  • 👉Une entree A avec your_domain pointant vers l'adresse IP publique de votre serveur.
    👉Un entree A avec www.votre_domaine pointant vers l'adresse IP publique de votre serveur.
    👉Apache installé proprement sur votre systeme.

Assurez-vous d'avoir un fichier d'hôte virtuel pour votre domaine. Ce tutoriel utilisera /etc/apache2/sites-available/your_domain.conf comme exemple.

 

1 - Installation de Certbot

La première étape pour utiliser Let's Encrypt pour obtenir un certificat SSL consiste à installer le logiciel Certbot sur votre serveur (ubuntu).

Certbot est en développement très actif, de sorte que les packages Certbot fournis par Ubuntu ont tendance à être obsolètes. Cependant, les développeurs de Certbot maintiennent un référentiel de logiciels Ubuntu avec des versions à jour, nous utiliserons donc ce référentiel ici.

Tout d'abord, ajoutez le dépôt :

sudo add-apt-repository ppa:certbot/certbot
C

Vous devrez appuyer sur ENTER pour accepter.

Installez le package Apache de Certbot avec apt :

sudo apt install python-certbot-apache
C

Certbot est maintenant prêt à être utilisé, mais pour qu'il configure SSL pour Apache, nous devons vérifier une partie de la configuration d'Apache.

2 - Configurer le certificat SSL

Certbot doit être capable de trouver le bon hôte virtuel (vitual host) dans votre configuration Apache pour qu'il configure automatiquement SSL. Plus précisément, il le fait en recherchant une directive ServerName qui correspond au domaine pour lequel vous demandez un certificat. Donc devrez savoir comment configurer un vichier d'hôte vituel apache sinon vous aurez les difficultées

Si vous avez suivi l'étape de configuration de l'hôte virtuel dans le didacticiel d'installation d'Apache, vous devriez avoir un bloc VirtualHost pour votre domaine sur /etc/apache2/sites-available/your_domain.com.conf avec la directive ServerName déjà définie de manière appropriée.

Pour vérifier, ouvrez le fichier d'hôte virtuel de votre domaine à l'aide de nano ou de votre éditeur de texte préféré :

sudo nano /etc/apache2/sites-available/votre_domaine.conf
C

Recherchez la ligne ServerName existante. Ça devrait ressembler à ça:

/etc/apache2/sites-available/votre_domaine.conf

...
ServerName votre_domaine ;
...
C

Si c'est le cas, quittez votre éditeur et passez à l'étape suivante.

Si ce n'est pas le cas, mettez-le à jour pour qu'il corresponde. Enregistrez ensuite le fichier, quittez votre éditeur et vérifiez la syntaxe de vos modifications de configuration avec cette commande :

sudo apache2ctl configtest
C

Si vous obtenez une erreur, rouvrez le fichier hôte virtuel et recherchez les fautes de saisir ou les caractères manquants. Une fois la syntaxe de votre fichier de configuration correcte, rechargez Apache pour charger la nouvelle configuration :

sudo systemctl reload apache2
C

Certbot peut désormais trouver le bloc VirtualHost correct et le mettre à jour.

Ensuite, mettons à jour le pare-feu pour autoriser le trafic HTTPS.

3 - Autoriser HTTPS via le pare-feu

Si vous avez activé le pare-feu ufw, comme recommandé par les guides des prérequis, vous devrez ajuster les paramètres pour autoriser le trafic HTTPS. Heureusement, Apache enregistre quelques profils avec ufw lors de l'installation.

Vous pouvez voir le paramètre actuel en tapant :

sudo ufw status
C

Cela ressemblera probablement à ceci, ce qui signifie que seul le trafic HTTP est autorisé vers le serveur Web :


Pour autoriser en plus le trafic HTTPS, autorisez le profil complet Apache et supprimez l'allocation de profil Apache redondant si necessaire :

sudo ufw allow 'Apache Full'
sudo ufw delete allow 'Apache'
C

Votre statut devrait maintenant ressembler à ceci :

sudo ufw status
C

Ensuite, exécutons Certbot et récupérons nos certificats.

4 — Obtention d'un certificat SSL

Certbot fournit une variété de façons d'obtenir des certificats SSL via des plugins. Ici le plugin Apache s'occupera de reconfigurer Apache et de recharger la configuration chaque fois que nécessaire. Pour utiliser ce plugin, tapez ce qui suit :

sudo certbot --apache -d your_domain -d www.your_domain
C

Cela exécute certbot avec le plugin --apache, en utilisant -d pour spécifier les noms pour lesquels vous souhaitez que le certificat soit valide.

S'il s'agit de votre première utilisation de certbot, vous serez invité à saisir une adresse e-mail et à accepter les conditions d'utilisation. Après cela, certbot communiquera avec le serveur Let's Encrypt, puis lancera un défi pour vérifier que vous contrôlez le domaine pour lequel vous demandez un certificat.

Si cela réussit, certbot vous demandera comment vous souhaitez configurer vos paramètres HTTPS :Cerbot

Sélectionnez votre choix puis appuyez sur ENTER. La configuration sera mise à jour et Apache se rechargera pour récupérer les nouveaux paramètres. certbot se terminera par un message vous indiquant que le processus a réussi et où vos certificats sont installés :

Vos certificats sont téléchargés, installés et chargés. Essayez de recharger votre site Web en utilisant https:// et notez l'indicateur de sécurité de votre navigateur. Il doit indiquer que le site est correctement sécurisé, généralement avec une icône de cadenas vert. Si vous testez votre serveur à l'aide du SSL Labs Server Test, il obtiendra une note A.

Terminons en testant le processus de renouvellement.

5 - Vérification du renouvellement automatique de Certbot

Le package certbot que nous avons installé prend en charge les renouvellements en incluant un script de renouvellement dans /etc/cron.d, qui est géré par un service systemctl appelé certbot.timer. Ce script s'exécute deux fois par jour et renouvellera automatiquement tout certificat dans les trente jours suivant son expiration.

Pour vérifier l'état de ce service et vous assurer qu'il est actif et en cours d'exécution, vous pouvez utiliser :

sudo systemctl status certbot.timer
C

Vous obtiendrez une sortie similaire à celle-ci :

Pour tester le processus de renouvellement, vous pouvez faire un essai avec certbot :

sudo certbot renew --dry-run
C

Si vous ne voyez aucune erreur, vous êtes prêt. Si nécessaire, Certbot renouvellera vos certificats et rechargera Apache pour récupérer les modifications. Si le processus de renouvellement automatisé échoue, Let's Encrypt enverra un message à l'e-mail que vous avez spécifié, vous avertissant lorsque votre certificat est sur le point d'expirer.

Conclusion

Dans ce didacticiel, vous avez installé le certbot client Let's Encrypt, téléchargé des certificats SSL pour votre domaine, configuré Apache pour utiliser ces certificats et configuré le renouvellement automatique des certificats. Si vous avez d'autres questions sur l'utilisation de Certbot, leur documentation est un bon point de départ.

source d'instipration: Digitalocean Community Tutorials

 

You can share this post!

bproo user profil

Kamdjou Duplex

the world would not be so beautiful without people willing to share knowledge