Comment fonctionnent les certificats HTTPS / SSL gratuits de LetsEncrypt?
Encrypt émet gratuitement des certificats SSL, qui sont utilisés pour sécuriser et crypter le trafic sur votre site Web, et vous donner le cadenas vert dans la barre d’URL. Sans celui-ci, vous serez bloqué en utilisant HTTP, qui n’est pas très sécurisé.
Sommaire
Qu’est-ce qu’un certificat HTTPS / SSL?
Lorsqu’une personne se connecte à votre site Web, le navigateur de cette personne demande à votre site Web de s’identifier pour s’assurer que personne n’interfère avec votre connexion. Il le fait avec un certificat SSL, qui vous est remis par une autorité de certification (CA).
L’AC garde une trace de votre nom de domaine et l’associe à votre clé publique, utilisée pour le chiffrement. Toute personne se connectant à votre site Web peut voir que vous utilisez la bonne clé pour crypter le trafic de votre site Web, vous devez donc être qui vous dites être. Tant que tout le monde fait confiance à l’autorité de certification, personne malveillant ne peut forger de nouveaux certificats SSL, car ils seront signés par l’autorité de certification et ne pourront être émis que par eux.
Cela signifie que tant que vous disposez d’un certificat SSL, personne ne peut espionner les connexions des personnes pendant qu’elles utilisent votre site Web ou usurper l’identité de votre site Web. Cela rend HTTPS très utile et beaucoup plus sûr. Avec l’essor de Let’s’s Encrypt, 93% du trafic Web (via Google) est désormais HTTPS, et si votre site Web ne l’est pas, vous vous classerez beaucoup plus bas dans les résultats de recherche Google.
En quoi Let’s Encrypt est-il différent?
Let’s Encrypt est entièrement gratuit. C’est inhabituel pour un CA, car la plupart d’entre eux vous obligent à payer des centaines de dollars par an. C’est le principal avantage de Let’s Encrypt. Si vous n’avez besoin de rien de plus sophistiqué, vous pouvez facilement sécuriser votre site Web avec HTTPS.
Encryptons cependant quelques inconvénients. Leurs certificats ne sont valables que pendant 90 jours, mais vous pouvez automatiser leur renouvellement, ce n’est donc pas un problème. Ils ne proposent également que des certificats de validation de domaine (DV), qui sécurisent simplement votre domaine. Ils n’offrent pas de certificats de validation d’organisation (OV), qui vous obligent à enregistrer votre entreprise à côté d’eux, et ils n’offrent pas de certificats de validation étendue (EV), qui nécessitent un processus de vérification approfondi et afficheront le nom de votre entreprise dans l’URL bar.
Cependant, il n’y a pas beaucoup d’avantages à un certificat OV, et vous n’avez probablement pas besoin d’un certificat EV à moins que vous dirigiez une banque ou une grande institution, auquel cas vous pouvez probablement épargner de l’argent. Même Amazon n’a pas de certificat EV.
Pour la plupart des gens, si cela ne vous dérange pas d’avoir à renouveler votre certificat tous les 90 jours, de nos jours, il n’y a vraiment pas grand-chose à avoir quelque chose de plus sophistiqué que LetsEncrypt.
Comment configurer les certificats de cryptage
Vous devez disposer d’un accès en ligne de commande au serveur sur lequel vous souhaitez installer un certificat SSL. Alternativement, si vous avez un fournisseur d’hébergement géré comme SquareSpace, votre hôte peut prendre en charge Let’s Encrypt, certains l’ayant activé par défaut. D’autres, comme GoDaddy, incluent SSL dans le cadre de leurs plans payants et peuvent vous empêcher d’utiliser d’autres options. Vous pouvez vérifier si votre fournisseur figure sur la liste et comment activer le chiffrement de Let si c’est le cas. Pour cet article, nous nous concentrerons sur la configuration manuelle exécutée sur votre propre serveur Web.
Pour obtenir un certificat, vous devez utiliser un client ACME, un programme qui discutera avec Let’s Encrypt pour vous et vérifiera que votre nom de domaine est légitime. Encryptons recommande d’utiliser certbot
, un utilitaire de ligne de commande qui créera des certificats pour vous mais les installera également automatiquement sur le serveur Web que vous utilisez.
Si vous ne voulez pas que certbot joue avec vos fichiers de configuration nginx ou Apache, vous pouvez générer manuellement un certificat avec un autre client ACME. Vous devrez l’ajouter manuellement à votre configuration, et vous devrez gérer le renouvellement du certificat tous les 90 jours (ce que vous pouvez faire automatiquement, vous n’aurez qu’à le configurer vous-même). Pour la plupart des gens, Certbot fera l’affaire.
Installation et utilisation de Certbot
L’installation variera en fonction du système d’exploitation que vous exécutez, mais Certbot ne fonctionne que sur les systèmes Unix, donc pas de Windows. C’est généralement aussi simple que de l’installer à partir du gestionnaire de paquets de votre distribution. Pour les systèmes basés sur Debian comme Ubuntu, ce serait:
sudo apt-get install certbot
Cependant, vous devrez ajouter le référentiel certbot à votre gestionnaire de packages. Heureusement, le site Web de Certbot contient des instructions d’installation plus complètes pour chaque distribution. Sélectionnez le serveur Web que vous utilisez et le système d’exploitation sur lequel vous l’exécutez. Certbot vous donnera une liste de commandes pour installer les packages nécessaires; exécutez-les et attendez qu’il soit installé.
Une fois terminé, vous voudrez exécuter:
sudo certbot --nginx
Remplacement du --nginx
signaler avec le serveur Web que vous utilisez. Certbot va générer un nouveau certificat et l’installer dans votre configuration nginx. Vous pouvez réellement exécuter Certbot en tant que client ACME manuel avec:
sudo certbot --nginx certonly
Cela générera un fichier de certificat que vous pouvez déployer manuellement sur votre serveur Web.
Certbot gérera automatiquement le renouvellement sur la plupart des distributions avec cron
ou systemd
minuteries, vous n’aurez donc pas à vous soucier de l’expiration. Ce travail cron est généralement situé dans /etc/cron.d/certbot
si vous voulez vous en assurer.
Une chose à noter est que ce travail cron ne fonctionne que certbot renew
une fois cela fait, qui ne redémarrera pas automatiquement votre serveur Web pour appliquer la nouvelle configuration. Vous pouvez associer une commande supplémentaire à ce travail cron avec --renew-hook
, et passez-lui une commande pour recharger nginx comme ceci:
certbot renew --renew-hook "/etc/init.d/nginx reload"
Vous pouvez également renouveler manuellement vos certificats directement depuis la ligne de commande avec:
sudo certbot renew
Vous devrez également redémarrer votre serveur Web après cela.
Gérer le trafic HTTPS
HTTPS fonctionne un peu différemment du HTTP standard. Le port HTTP par défaut est 80, qui est généralement ouvert sur les serveurs Web. HTTPS s’exécute sur le port 443, vous devrez donc vous assurer que ce port est ouvert dans tous les pare-feu que vous pourriez avoir pour que HTTPS fonctionne.
En outre, vous souhaiterez probablement bloquer tout le trafic HTTP maintenant que vous disposez de HTTPS. Vous pouvez le faire avec une règle nginx:
server {
listen 80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
Cela redirigera tout le trafic du port 80 vers une liaison HTTPS. Cela remplace le serveur par défaut du port 80, assurez-vous donc que rien d’autre ne fonctionne sur ce port.