Passer au https avec letsencrypt

Cet article est assez ancien, malgré toute l'attention que j' apporte à mes contenus il est possible que celui-ci ne soit plus d'actualité.
N'hésitez pas à me le signaler si nécessaire via le formulaire de contact.

Si il était conseillé auparavant l’utilisation du protocole https est maintenant une nécessité.
Ce paramètre est même pris en compte par google pour l’indexation de votre site.

Pour ceux qui font tourner une boutique de taille raisonnable et qui ne souhaitent pas de garantie étendue ( ou qui n’ont tout simplement pas le budget ), il existe une possibilité d’obtenir des certificats https gratuitement via letsencrypt : https://letsencrypt.org/

Le seul point à prendre en compte est que le certificat est valide pour une durée de 3 mois, il sera donc nécessaire de le renouveler régulièrement.

L’installation et la génération des certificats sont très rapide et pratique , nous allons voir comment procéder pour installer ces certificats sur notre serveur dédié avec Ubuntu 14.04

(Un accès root ou sudo est nécessaire )

#Telechargement du robot de certification
wget https://dl.eff.org/certbot-auto
#Mise à jour des droits
chmod a+x certbot-auto

Pour un serveur avec apache2

#Execution avec la configuration apache
$ sudo ./certbot-auto --apache

Vous pouvez ensuite choisir les domaines pour lesquels vous souhaitez un certicat https

Certbot choisir domaine

Il faut ensuite choisir si vous souhaitez que https soit obligatoire ou optionnel ( laisser en optionnel par défaut )

Certbot apache mode
Les certificats sont ensuite générés, il vous suffit de recharger la configuration d’apache et tout fonctionne 😉

sudo service apache2 reload

Pour renouveler votre certificat vous pouvez par exemple mettre une tache cron tous les lundi comme ceci

0 10 * * 1 ./path/to/certbot-auto renew --quiet --no-self-upgrade

Pour un serveur avec nginx :

Pour nginx , c’est un peu plus « compliqué » car il n’existe pas d’installation automatique.
Mais ça reste tout de même très accessible.

Pour commencer il faut générer les certifications

$ sudo ./certbot-auto certonly --webroot -w /var/www/example -d example.com -d www.example.com

L’option -w correspond à l’emplacement du site sur le serveur
L’option -d correspond aux noms de domaines qui y sont associés ( 1 ou plusieurs )

Les certificats sont ensuite générés dans l’emplacement /etc/letsencrypt/live/example.com/

Il vous suffit ensuite de les rajouter dans la configuration nginx ( et de rajouter l’ecoute sur le port 443 )

server {
        listen 80;
        listen 443 ssl;
 
        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
 
        root /var/www/example;
 
      #Your configuration
       ...
}

Pour finir reloader la configuration nginx :

sudo service nginx reload

Vos sites seront ensuite accessibles via le protocole https 🙂

1 réflexion sur “Passer au https avec letsencrypt”

  1. Pierre-Louis Lamballais

    Le certificat est valable seulement 3 mois, à partir de sa date de création ou de renouvellement. Ce délais de 3 mois repart dés que tu renouvelles. Pour ma part j’ai mis un CRON sur mon dédié, pour renouveler le certificat tous les mois, comme ça si le renouvellement échoue, j’ai encore 2 chances.
    Pour renouveler, il suffit d’appeler « certbot renew »
    Un détail: la commande cerbot renew va appeler le serveur de Let’s Encrypt et celui-ci va venir lire un fichier sur ton serveur. Dans mon cas j’ai une protection sur les IP (GeoIP) qui empêchait cette vérif et le renouvellement échouait. La solution que j’utilise c’est d’invalider ma protection avec « a2dismod geoip », je relance Apache (« systemctl restart apache2 »), je fais le renew puis je réactive GeOIP. ça laisse l’accès ouvert 1 à 2 min par mois. 🙂

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *