GNU/Linux >> Tutoriels Linux >  >> Debian

Générer des certificats SSL avec LetsEncrypt sur Debian Linux

Présentation

Au cas où vous ne l'auriez pas déjà compris, le cryptage est important. Pour le Web, cela signifie utiliser des certificats SSL pour sécuriser le trafic Web. Récemment, Mozilla et Google sont allés jusqu'à marquer les sites sans certificats SSL comme non sécurisés dans Firefox et Chrome.

Afin de mettre le Web à niveau avec le cryptage, la Linux Foundation, l'Electronic Frontier Foundation et bien d'autres ont créé LetsEncrypt. LetsEncrypt est un projet conçu pour permettre aux utilisateurs d'accéder à des certificats SSL gratuits pour leurs sites Web. À ce jour, LetsEncrypt a émis des millions de certificats et connaît un succès retentissant.

L'utilisation de LetsEncrypt est facile sur Debian, en particulier lors de l'utilisation de l'utilitaire Certbot de l'EFF.

Système d'exploitation

  • SE :Debian Linux
  • Version :9 (Étirement)

Installation pour Apache

Certbot dispose d'un programme d'installation spécialisé pour le serveur Apache. Debian a ce programme d'installation disponible dans ses dépôts.

# apt install python-certbot-apache

Le paquet fournit le certbot commande. Le plug-in Apache s'interface avec le serveur Apache pour découvrir des informations sur vos configurations et les domaines pour lesquels il génère des certificats. Par conséquent, la génération de vos certificats ne nécessite qu'une courte commande.

# certbot --apache

Certbot générera vos certificats et configurera Apache pour les utiliser.

Installation pour Nginx

Nginx nécessite une configuration un peu plus manuelle. Là encore, si vous utilisez Nginx, vous êtes probablement habitué aux configurations manuelles. Dans tous les cas, Certbot est toujours disponible en téléchargement via les référentiels Debian.

# apt install certbot

Le plugin Certbot est toujours en version alpha, il n'est donc pas vraiment recommandé de l'utiliser. Certbot dispose d'un autre utilitaire appelé "webroot" qui facilite l'installation et la maintenance des certificats. Pour obtenir un certificat, exécutez la commande ci-dessous, en spécifiant votre directeur racine Web et tous les domaines que vous souhaitez couvrir par le certificat.

# certbot certonly --webroot -w /var/www/site1 -d site1.com -d www.site1.com -w /var/www/site2 -d site2.com -d www.site2.com 

Vous pouvez utiliser un certificat pour plusieurs domaines avec une seule commande.

Nginx ne reconnaîtra pas les certificats tant que vous ne les aurez pas ajoutés à votre configuration. Tous les certificats SSL doivent être répertoriés dans le server bloquer pour leur site Web respectif. Vous devez également spécifier dans ce bloc que le serveur doit écouter sur le port 443 et utilisez SSL.

serveur { écouter 443 ssl par défaut ; # Votre # Autre ssl_certificate /path/to/cert/fullchain.pem ssl_certificate_key /path/to/cert/privkey.pem # Config # Lines}

Enregistrez votre configuration et redémarrez Nginx pour que les modifications prennent effet.

# systemctl redémarrer nginx

Renouvellement automatique avec Cron

Que vous utilisiez Apache ou Nginx, vous devrez renouveler vos certificats. Se souvenir de le faire peut être pénible, et vous ne voulez certainement pas qu'ils expirent. La meilleure façon de gérer le renouvellement de vos certificats est de créer une tâche cron qui s'exécute deux fois par jour. Des renouvellements biquotidiens sont recommandés car ils protègent contre l'expiration des certificats en raison d'une révocation, ce qui peut se produire de temps à autre. Pour être clair, cependant, ils ne se renouvellent pas à chaque fois. L'utilitaire vérifie si les certificats sont périmés ou le seront dans les trente jours. Il ne les renouvellera que s'ils répondent aux critères.

Tout d'abord, créez un script simple qui exécute l'utilitaire de renouvellement de Certbot. C'est probablement une bonne idée de le placer dans le répertoire personnel de votre utilisateur ou dans un répertoire de scripts afin qu'il ne soit pas servi.

# ! /bin/bashcertbot renouveler -q

N'oubliez pas de rendre le script exécutable également.

$ chmod +x renouveler-certs.sh

Maintenant, vous pouvez ajouter le script en tant que tâche cron. Ouvrez votre crontab et ajoutez le script.

# crontab -e
* 3,15 * * * /home/user/renew-certs.sh

Une fois que vous quittez, le script devrait s'exécuter tous les jours à 3 h et 15 h. par l'horloge du serveur.

Réflexions finales

Le cryptage de votre serveur Web protège à la fois vos invités et vous-même. Le cryptage continuera également à jouer un rôle dans l'affichage des sites dans les navigateurs, et il n'est pas exagéré de supposer qu'il jouera également un rôle dans le référencement. Quel que soit votre point de vue, chiffrer votre serveur Web est une bonne idée, et LetsEncrypt est le moyen le plus simple de le faire.


Debian
  1. Comment remplacer Systemd par SysV Init sur Debian Linux

  2. Démarrer avec Jekyll sur Debian 9 Stretch Linux

  3. Comment chiffrer le répertoire avec EncFS sur Debian 9 Stretch Linux

  4. Comment gérer les certificats Lets Encrypt SSL/TLS avec certbot

  5. Emplacement du certificat SSL sur UNIX/Linux

Comment installer Etherpad avec Nginx et SSL sur Debian 11

MX Linux 19 publié avec Debian 10.1 "Buster" et d'autres améliorations

Comment générer une demande de signature de certificat SSL/TLS (CSR) sur Debian 10

Comment chiffrer des partitions Linux avec VeraCrypt sur Debian 10

Comment renouveler automatiquement les certificats SSL Let's Encrypt

Certificats maîtres auto-signés sur Windows et Linux