introduction
Let’s Encrypt est une nouvelle autorité de certification qui fournit un moyen simple d’obtenir et d’installer des certificats TLS / SSL gratuits, permettant ainsi le cryptage HTTPS sur des serveurs Web. Il simplifie le processus en fournissant un logiciel client, Certbot, qui tente d'automatiser la plupart (sinon la totalité) des étapes requises. Actuellement, l'ensemble du processus d'obtention et d'installation d'un certificat est entièrement automatisé sur les serveurs Web Apache et Nginx.
Dans ce didacticiel, nous allons vous montrer comment utiliser Certbot pour obtenir un certificat SSL gratuit et l’utiliser avec Nginx sur Ubuntu 14.04 LTS. Nous vous montrerons également comment renouveler automatiquement votre certificat SSL.
Nous utiliserons le fichier de configuration Nginx par défaut dans ce didacticiel au lieu d’un fichier de bloc serveur distinct. We recommend crée de nouveaux fichiers de bloc de serveur Nginx pour chaque domaine, car cela permet d'éviter certaines erreurs courantes et de conserver les fichiers par défaut comme configuration de secours comme prévu. Si vous souhaitez configurer SSL à l'aide de blocs de serveur à la place, vous pouvez suivrethis Nginx server blocks with Let’s Encrypt tutorial.
Conditions préalables
Avant de suivre ce tutoriel, vous aurez besoin de quelques choses.
-
Un serveur Ubuntu 14.04 avec un utilisateur non root disposant des privilèges
sudo
. Vous pouvez apprendre comment configurer un tel compte utilisateur en suivant nosinitial server setup for Ubuntu 14.04 tutorial. -
Nginx installé,How To Install Nginx on Ubuntu 14.04 LTS
-
Vous devez posséder ou contrôler le nom de domaine enregistré avec lequel vous souhaitez utiliser le certificat. Si vous ne possédez pas déjà un nom de domaine enregistré, vous pouvez en enregistrer un auprès d’un des nombreux bureaux d’enregistrement de noms de domaine (par exemple, Namecheap, GoDaddy, etc.).
-
Un DNSA Record qui pointe votre domaine vers l'adresse IP publique de votre serveur. Vous pouvez suivrethis hostname tutorial pour savoir comment les ajouter. Cela est nécessaire en raison de la façon dont Let’s Encrypt a confirmé que vous êtes propriétaire du domaine pour lequel il émet un certificat. Par exemple, si vous souhaitez obtenir un certificat pour
example.com
, ce domaine doit être résolu sur votre serveur pour que le processus de validation fonctionne. Notre configuration utiliseraexample.com
etwww.example.com
comme noms de domaine, doncboth DNS records are required.
Une fois toutes les conditions préalables remplies, passons à l’installation de Certbot, le logiciel client Let’s Encrypt.
[[step-1 -—- Installing-certbot]] == Étape 1 - Installation de Certbot
La première étape pour utiliser Let’s Encrypt pour obtenir un certificat SSL consiste à installer le logicielcertbot
sur votre serveur. Les développeurs de Certbot gèrent leur propre référentiel de logiciels Ubuntu avec des versions à jour du logiciel. Étant donné le développement actif de Certbot, il est intéressant d’utiliser ce référentiel pour installer un Certbot plus récent que celui fourni par Ubuntu.
Tout d'abord, ajoutez le référentiel:
sudo add-apt-repository ppa:certbot/certbot
Vous devrez appuyer surENTER
pour accepter. Ensuite, mettez à jour la liste des packages pour récupérer les informations de package du nouveau référentiel:
sudo apt-get update
Et enfin, installez Certbot avecapt-get
:
sudo apt-get install python-certbot-nginx
Le client Let’s Encrypt decertbot
est maintenant prêt à être utilisé.
[[step-2 -—- setting-up-nginx]] == Étape 2 - Configuration de Nginx
Certbot peut configurer automatiquement SSL pour Nginx, mais il doit être capable de trouver le blocserver
correct dans votre configuration. Pour ce faire, il recherche une directiveserver_name
qui correspond au domaine pour lequel vous demandez un certificat. Si vous commencez avec une nouvelle installation de Nginx, vous pouvez mettre à jour le fichier de configuration par défaut:
sudo nano /etc/nginx/sites-available/default
Recherchez la ligneserver_name
existante:
/etc/nginx/sites-available/default
server_name localhost;
Remplacezlocalhost
par votre nom de domaine:
/etc/nginx/sites-available/default
server_name example.com www.example.com;
Enregistrez le fichier et quittez votre éditeur. Vérifiez la syntaxe de vos modifications de configuration avec:
sudo nginx -t
Si cela fonctionne sans erreur, rechargez Nginx pour charger la nouvelle configuration:
sudo service nginx reload
Certbot pourra maintenant trouver le blocserver
correct et le mettre à jour. Nous allons maintenant mettre à jour notre pare-feu pour autoriser le trafic HTTPS.
[[step-3 -—- getting-an-ssl-certificate]] == Étape 3 - Obtention d'un certificat SSL
Certbot propose diverses méthodes pour obtenir des certificats SSL, via différents plugins. Le plugin Nginx se chargera de la reconfiguration de Nginx et du rechargement de la configuration chaque fois que nécessaire:
sudo certbot --nginx -d example.com -d www.example.com
Cela exécutecertbot
avec le plugin--nginx
, en utilisant-d
pour spécifier les noms pour lesquels nous aimerions que le certificat soit valide.
Si c'est la première fois que vous exécutezcertbot
, 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:
OutputPlease choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, 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):
Sélectionnez votre choix puis appuyez surENTER
. La configuration sera mise à jour et Nginx 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 stockés:
OutputIMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/example.com/fullchain.pem. Your cert will
expire on 2017-10-23. To obtain a new or tweaked version of this
certificate in the future, simply run certbot again with the
"certonly" option. To non-interactively renew *all* of your
certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Vos certificats sont maintenant téléchargés, installés et configurés. Essayez de recharger votre site Web à l'aide dehttps://
et notez l'indicateur de sécurité de votre navigateur. Cela devrait représenter que le site est correctement sécurisé, généralement avec une icône de verrou vert. Si vous testez votre serveur en utilisant lesSSL Labs Server Test, il obtiendra une noteA.
[[step-4 -—- verifying-certbot-auto-renew]] == Étape 4 - Vérification du renouvellement automatique de Certbot
Les certificats de Let Encrypt ne sont valables que quatre-vingt-dix jours. Cela encourage les utilisateurs à automatiser leur processus de renouvellement des certificats. Le packagecertbot
que nous avons installé s’occupe de cela pour nous en exécutant ‘certbot renew’ deux fois par jour via une minuterie systemd. Sur les distributions non-systemd, cette fonctionnalité est fournie par un script placé dans/etc/cron.d
. Cette tâche est exécutée deux fois par jour et renouvelle tout certificat dans les trente jours suivant son expiration.
Pour tester le processus de renouvellement, vous pouvez effectuer un essai à sec aveccertbot
:
sudo certbot renew --dry-run
Si vous ne voyez aucune erreur, vous êtes tous ensemble. Si nécessaire, Certbot renouvellera vos certificats et rechargera Nginx pour prendre en compte les modifications. En cas d’échec du processus de renouvellement automatique, Let’s Encrypt enverra un message au courrier électronique que vous avez spécifié pour vous avertir de l’expiration de votre certificat.
Conclusion
Dans ce didacticiel, nous avons installé le client Let’s Encryptcertbot
, téléchargé des certificats SSL pour notre domaine, configuré Nginx pour utiliser ces certificats et configuré le renouvellement automatique des certificats. Si vous avez d'autres questions sur l'utilisation de Certbot,their documentation est un bon point de départ.