#005 CERTBOT ET LET’S ENCRYPT SUR SERVEUR APACHE

in #fr7 years ago (edited)

Vous souhaitez ou avez déjà créé votre site web, cloud, ou autre, et vous avez besoin d’un certificat afin de vous y connecter en https ? Let’s Encrypt utilisé avec le client Certbot est une solution assez simple et gratuite à mettre en œuvre.
Je l’utilise pour mes modestes besoins. Je profite de ce billet pour vous présenter cette solution et les fonctionnalités de bases que j’utilise.

Installation du client

sudo apt install python-certbot-apache

Si cette commande ne fonctionne pas, un petit tour par là vous aidera à trouver les instructions d'installation adaptées à votre environnement.

Création du certificat

sudo certbot --apache

Suivez les instructions. Il vous sera demandé de renseigner le nom de domaine pour lequel vous souhaitez obtenir un certificat, une adresse mail sur laquelle vous recevrez des alertes ou rappel à l’expiration de vos certificats, accepter les conditions générales. Au moment où 2 choix vous seront proposés, choisissez l’option secure si vous souhaitez que toutes les connections soient obligatoirement en https, ou l’autre option si vous préférez que http et https soient possibles.

Si la commande ci-dessus ne fonctionne pas, il faudra utiliser la méthode avec webroot au moyen d’une commande de ce type :
sudo certbot certonly --webroot -w /var/www/xxxx/ -d nomde.domaine --email adresse@email

Les options a adapter sont :
- w : correspond au chemin vers le serveur web.
- d : le nom de domaine et/ou sous domaine pour lequel on demande le certificat.
- email : l’adresse email qui recevra les alertes.

A partir de là, selon ce que vous souhaitez faire, il se peut que d’autres paramétrages soient à renseigner dans les fichier de config de votre serveur. A déterminer au cas par cas. Généralement le vhost sera à modifier/mettre à jour, ne serait-ce que pour lui indiquer où trouver les certificats.

Management des certificats

Pour obtenir la liste des certificats existants et leur date de validité :

sudo certbot certificates

Found the following certs:
Certificate Name: zzz.com
Domains: sous.domaine.com
Expiry Date: 2018-04-26 00:00:00+00:00 (VALID: 40 days)
Certificate Path: /etc/letsencrypt/live/sous.domaine.com/fullchain.pem
Private Key Path: /etc/letsencrypt/live/sous.domaine.com/privkey.pem

Renouvellement manuel

Pour le renouvellement de tous les certificats qui expirent dans mois de 30 jours.

sudo certbot renew

Saving debug log to /var/log/letsencrypt/letsencrypt.log
-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/sous.domaine.com.conf
-------------------------------------------------------------------------------
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for sous.domaine.com
Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0002_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0002_csr-certbot.pem
-------------------------------------------------------------------------------
new certificate deployed with reload of apache server; fullchain is
/etc/letsencrypt/live/sous.domaine.com/fullchain.pem
-------------------------------------------------------------------------------
Congratulations, all renewals succeeded. The following certs have been renewed:
/etc/letsencrypt/live/sous.domaine.com/fullchain.pem (success)

Si vos certificats ont une durée de validité de plus de 30 jours mais que vous souhaitez quand les renouveler immédiatement, utilisez l’option --force-renewal.

sudo certbot renew --force-renewal

Attention, il ne faut pas utiliser cette commande pour un renouvellement automatique trop fréquent. En effet, il existe une limite au nombre de renouvellement possible par nom de domaine. Cette limite est fixée à 20 par semaine.

Renouvellement automatique

Après avoir testé le renouvellement manuel, vous pouvez passer à un renouvellement automatique en ajoutant une tache cron.
Exemple pour une demande de renouvellement tous les jours à minuit: 0 0 * * * certbot renew
(si la date de fin de validité est proche, les certificats seront mis à jour)

A noter, plusieurs « -d » et « -w » peuvent être définis sur une même commande. Cela aura pour effet de créer un unique certificat pour plusieurs domaines et/ou sous-domaine.

Pour aller plus loin :
https://letsencrypt.org/docs/rate-limits
https://certbot.eff.org/docs/intro.html

Voilà une bonne piste pour obtenir votre certificat et participer à la sécurisation des échanges sur Internet.

@++ ;

Sort:  

Congratulations @percyflette! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes

Click on any badge to view your own Board of Honor on SteemitBoard.

To support your work, I also upvoted your post!
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

Upvote this notification to help all Steemit users. Learn why here!