Certbot

Ubuntu 18.04 LTS – Installation de certificats SSL/TLS avec Certbot (Let’s Encrypt)

Let’s Encrypt est une autorité de certification libre, automatisée et ouverte qui fournit des certificats gratuits X.509 pour le protocole cryptographique SSL/TLS au moyen d’un processus automatisé (via l’outil certbot) destiné à se passer du processus complexe actuel impliquant la création manuelle, la validation, la signature, l’installation et le renouvellement des certificats pour la sécurisation des sites internet. En mai 2018, Let’s Encrypt a livré plus 70 millions de certificats SSL/TLS.

1 – Installation

Mettez à jour votre gestionnaire de paquets, ajoutez le repository officiel de Let’s Encrypt et installez le paquet certbot :

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install certbot

2 – Génération des certificats

Let’s Encrypt permet de générer de différentes façons plus ou moins automatisées un certificat. La méthode standalone permet de générer simplement un certificat. En revanche, celle-ci demande d’arrêter le serveur Nginx et ceci est valable à chaque renouvellement dudit certificat. Il existe aussi des plugins Apache et Nginx entièrement automatisés qui mettent à jour la configuration des virtual hosts.

Afin que les serveurs Let’s Encrypt puissent valider votre certificat, votre domaine ou sous-domaine doit pointer vers l’IP de votre serveur. Pour cela, commencez par modifier les règles DNS chez le fournisseur de votre nom de domaine.

1 – standalone

Le plugin standalone nécessite d’écouter sur les ports 80 ou 443 pour effectuer une validation de votre certificat.
Il est donc nécessaire d’arrêter votre serveur Apache ou Nginx.

  • Partons du principe que vous disposez du virtual host suivant écoutant sur le port 80 :

    Pour Nginx :

    server {
        listen      80;
        listen      [::]:80;
        
        server_name mondomaine.com www.mondomaine.com;
    
        location / {
            root    /var/www/html;
            index   index.html index.htm;
        }
    }

    Pour Apache :

    <VirtualHost *:80>
        ServerName   mondomaine.com
        ServerAlias  www.mondomaine.com
    
        ServerAdmin  email@mondomaine.com
        DocumentRoot /var/www/html
    </VirtualHost>
    
  • Arrêtez votre serveur Apache ou Nginx :
    $ sudo systemctl stop nginx

    ou

    $ sudo systemctl stop apache
  • Vérifiez que le port 80 n’est pas utilisé :
    $ netstat -na | grep ':80.*LISTEN'

    Si cette commande n’affiche rien sur la sortie standard, alors le port 80 n’est pas utilisé.

  • Générez votre certificat en remplaçant mondomaine.com et www.mondomaine.com par vos informations :
    $ sudo certbot certonly --standalone --agree-tos --no-eff-email -d mondomaine.com -d www.mondomaine.com --rsa-key-size 4096

    Sachez qu’il est possible de spécifier une option lors de la génération de votre certificat permettant de forcer Let’s Encrypt de valider votre domaine sur un port en particulier :

    • –preferred-challenges http pour utiliser le port 80
    • –preferred-challenges tls-sni pour utiliser le port 443.

    Vous obtiendrez 4 fichiers dans le répertoire /etc/letsencrypt/live/mondomaine.com :

    • cert.pem : le certificat de votre domaine mondomaine.com
    • chain.pem : le certificat Let’s Encrypt
    • fullchain.pem : les certificats cert.pem et chain.pem combinés
    • privkey.pem : la clé privée du certificat.
  • Modifiez votre virtual host en fonction de votre serveur Nginx ou Apache :

    Pour Nginx :

    server {
           listen                 80;
           listen                 [::]:80;
           return                 301 https://$host$request_uri;
    }
    
    server {
        listen                    443 ssl;
        listen                    [::]:443 ssl;
        server_name               mondomaine.com www.mondomaine.com;
    
        location / {
            root                  /var/www/html;
            index                 index.html index.htm;
        }
    
        ssl_certificate           /etc/letsencrypt/live/mondomaine.com/fullchain.pem;
        ssl_certificate_key       /etc/letsencrypt/live/mondomaine.com/privkey.pem;
    	ssl_trusted_certificate   /etc/letsencrypt/live/mondomaine.com/chain.pem;
    
        ssl_protocols             TLSv1 TLSv1.1 TLSv1.2;
    	ssl_prefer_server_ciphers on;
        ssl_ciphers               ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-
    RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS;
    	ssl_ecdh_curve            secp384r1;
    	
    	ssl_session_cache         shared:SSL:4m;
        ssl_session_timeout       1440m;
    	ssl_stapling              on;
    	ssl_stapling_verify       on;
    	resolver                  8.8.8.8 8.8.4.4;
    
        add_header                Strict-Transport-Security max-age=31536000;
    }

    Modifiez les directives suivantes en fonction de votre domaine et de votre configuration :

    • server_name : votre nom de domaine
    • root : répertoire racine de vos ressources web
    • ssl_certificate : chemin vers votre fullchain.pem
    • ssl_certificate_key : chemin vers votre privkey.pem
    • ssl_trusted_certificat : chemin vers votre chain.pem.

    Pour Apache :

    <IfModule mod_ssl.c>
        <VirtualHost *:80>
            ServerName              mondomaine.com
            Redirect                / https://mondomaine.com
        </VirtualHost>
        <VirtualHost *:443>
            ServerName              mondomaine.com
            ServerAlias             www.mondomaine.com
            ServerAdmin             email@mondomaine.com
            DocumentRoot            /var/www/html
            
            SSLCertificateFile      /etc/letsencrypt/live/mondomaine.com/cert.pem
            SSLCertificateKeyFile   /etc/letsencrypt/live/mondomaine.com/privkey.pem
    		SSLCertificateChainFile /etc/letsencrypt/live/mondomaine.com/chain.pem
    
            SSLEngine               on
            SSLProtocol             all -SSLv2 -SSLv3
            SSLCipherSuite          ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
            SSLHonorCipherOrder     on
            SSLCompression          off
            SSLOptions              +StrictRequire                                                         
        </VirtualHost>
    </IfModule>
    

    Modifiez les directives suivantes en fonction de votre domaine et de votre configuration :

    • ServerName, Redirect et ServerAlias : votre nom de domaine
    • ServerAdmin : votre email
    • DocumentRoot : répertoire racine de vos ressources web
    • SSLCertificateFile : chemin vers votre cert.pem
    • SSLCertificateKeyFile : chemin vers votre privkey.pem
    • SSLCertificateChainFile : chemin vers votre chain.pem.
  • Démarrez votre serveur Apache ou Nginx :
    $ sudo systemctl start nginx

    ou

    $ sudo systemctl start apache
  • Rendez-vous sur SSL Labs et testez la sécurité de votre configuration SSL/TLS !

2 – webroot

Le plugin webroot crée un fichier temporaire ${webroot-path}/.well-known/acme-challenge dans le dossier racine de vos ressources web, celui-ci permettra aux serveurs de Let’s Encrypt de valider votre certificat en appelant ce fichier temporaire.

  • Partons du principe que vous disposez du virtual host suivant écoutant sur le port 80 :

    Pour Nginx :

    server {
        listen      80;
        listen      [::]:80;
        
        server_name mondomaine.com www.mondomaine.com;
    
        location / {
            root    /var/www/html;
            index   index.html index.htm;
        }
    }

    Pour Apache :

    <VirtualHost *:80>
        ServerName   mondomaine.com
        ServerAlias  www.mondomaine.com
    
        ServerAdmin  email@mondomaine.com
        DocumentRoot /var/www/html
    </VirtualHost>
    
  • Générez votre certificat en remplaçant /var/www/html et mondomaine.com par vos informations :
    $ sudo certbot certonly --webroot -w /var/www/html --agree-tos --no-eff-email -d mondomaine.com -d www.mondomaine.com --rsa-key-size 4096

    Vous obtiendrez 4 fichiers dans le répertoire /etc/letsencrypt/live/mondomaine.com :

    • cert.pem : le certificat de votre domaine mondomaine.com
    • chain.pem : le certificat Let’s Encrypt
    • fullchain.pem : les certificats cert.pem et chain.pem combinés
    • privkey.pem : la clé privée du certificat.
  • Modifiez votre virtual host en fonction de votre serveur Nginx ou Apache :

    Pour Nginx :

    server {
        listen                    80;
        listen                    [::]:80;
        return                    301 https://$host$request_uri;
    }
    
    server {
        listen                    443 ssl;
        listen                    [::]:443 ssl;
        server_name               mondomaine.com www.mondomaine.com;
    
        location / {
            root                  /var/www/html;
            index                 index.html index.htm;
        }
    
        ssl_certificate           /etc/letsencrypt/live/mondomaine.com/fullchain.pem;
        ssl_certificate_key       /etc/letsencrypt/live/mondomaine.com/privkey.pem;
    	ssl_trusted_certificate   /etc/letsencrypt/live/mondomaine.com/chain.pem;
    
        ssl_protocols             TLSv1 TLSv1.1 TLSv1.2;
    	ssl_prefer_server_ciphers on;
        ssl_ciphers               ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-
    RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS;
    	ssl_ecdh_curve            secp384r1;
    	
    	ssl_session_cache         shared:SSL:4m;
        ssl_session_timeout       1440m;
    	ssl_stapling              on;
    	ssl_stapling_verify       on;
    	resolver                  8.8.8.8 8.8.4.4;
    
        add_header                Strict-Transport-Security max-age=31536000;
    }

    Modifiez les directives suivantes en fonction de votre domaine et de votre configuration :

    • server_name : votre nom de domaine
    • root : répertoire racine de vos ressources web
    • ssl_certificate : chemin vers votre fullchain.pem
    • ssl_certificate_key : chemin vers votre privkey.pem
    • ssl_trusted_certificat : chemin vers votre chain.pem

    Pour Apache :

    <IfModule mod_ssl.c>
        <VirtualHost *:80>
            ServerName              mondomaine.com
            Redirect                / https://mondomaine.com
        </VirtualHost>
        <VirtualHost *:443>    
            ServerName              mondomaine.com
            ServerAlias             www.mondomaine.com
            ServerAdmin             email@mondomaine.com
            DocumentRoot            /var/www/html
            
            SSLCertificateFile      /etc/letsencrypt/live/mondomaine.com/cert.pem
            SSLCertificateKeyFile   /etc/letsencrypt/live/mondomaine.com/privkey.pem
    		SSLCertificateChainFile /etc/letsencrypt/live/mondomaine.com/chain.pem
    
            SSLEngine               on
            SSLProtocol             all -SSLv2 -SSLv3
            SSLCipherSuite          ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
            SSLHonorCipherOrder     on
            SSLCompression          off
            SSLOptions              +StrictRequire
        </VirtualHost>
    </IfModule>
    

    Modifiez les directives suivantes en fonction de votre domaine et de votre configuration :

    • ServerName, Redirect et ServerAlias : votre nom de domaine
    • ServerAdmin : votre email
    • DocumentRoot : répertoire racine de vos ressources web
    • SSLCertificateFile : chemin vers votre cert.pem
    • SSLCertificateKeyFile : chemin vers votre privkey.pem
    • SSLCertificateChainFile : chemin vers votre chain.pem.
  • Redémarrez votre serveur Apache ou Nginx :
    $ sudo systemctl restart nginx

    ou

    $ sudo systemctl restart apache

Si vous utilisez Nginx ou Apache comme proxy reverse et que vous n’avez pas la main sur vos ressources web, il vous sera nécessaire de créer un répertoire spécifique à la validation de Let’s Encrypt et de permettre à votre serveur web d’écrire dans ce répertoire.


  • Créez un répertoire spécifique à la validation de Let’s Encrypt (remplacez par votre domaine) :
    $ sudo mkdir -p /var/www/letsencrypt/mondomaine.com
    $ sudo chown -R www-data:www-data /var/www/letsencrypt
  • Ajoutez les lignes suivantes dans votre configuration Nginx ou Apache en modifiant la valeur des directives root pour Nginx et DocumentRoot et Directory pour Apache en fonction du répertoire que vous avez créé précédemment :

    Pour Nginx :

    server {
        listen                      80;
        listen                      [::]:80;
        server_name                 mondomaine.com www.mondomaine.com;
    
        location ~ /.well-known {
            root                    /var/www/letsencrypt/mondomaine.com
        }
    
        location / {
            proxy_pass              http://127.0.0.1:12345;
            proxy_set_header        Host $host;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header        X-Forwarded-Proto $scheme;
        }
    }

    Pour Apache :

    <VirtualHost *:80>
        ServerName        mondomaine.com
        ServerAlias       www.mondomaine.com
        ServerAdmin       email@mondomaine.com
        DocumentRoot      /var/www/letsencrypt/mondomaine.com
        
        
             Options       Indexes FollowSymLinks
             AllowOverride None
             Require       all granted
        
    
        ProxyPreserveHost On
        ProxyRequests     off
        ProxyPass         /.well-known/acme-challenge/ !
        ProxyPass         / http://127.0.0.1:12345/
        ProxyPassReverse  / http://127.0.0.1:12345
    </VirtualHost>
    
  • Redémarrez votre serveur Apache ou Nginx :
    $ sudo systemctl restart nginx

    ou

    $ sudo systemctl restart apache
  • Générez votre certificat en remplaçant /var/www/letsencrypt/mondomaine.com et mondomaine.com par vos informations :
    $ sudo certbot certonly --webroot -w /var/www/letsencrypt/mondomaine.com --agree-tos --no-eff-email -d mondomaine.com -d www.mondomaine.com --rsa-key-size 4096

    Vous obtiendrez 4 fichiers dans le répertoire /etc/letsencrypt/live/mondomaine.com :

    • cert.pem : le certificat de votre domaine mondomaine.com
    • chain.pem : le certificat Let’s Encrypt
    • fullchain.pem : les certificats cert.pem et chain.pem combinés
    • privkey.pem : la clé privée du certificat.
  • Modifiez votre virtual host en fonction de votre serveur Nginx ou Apache :

    Pour Nginx :

    server {
        listen                    80;
        listen                    [::]:80;
        return                    301 https://$host$request_uri;
    }
    
    server {
        listen                    443 ssl;
        listen                    [::]:443 ssl;
        server_name               mondomaine.com www.mondomaine.com;
    
        location ~ /.well-known {
            root                  /var/www/letsencrypt/mondomaine.com;
        }
    
        location / {
            proxy_pass            http://127.0.0.1:12345;
            proxy_set_header      Host $host;
            proxy_set_header      X-Real-IP $remote_addr;
            proxy_set_header      X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header      X-Forwarded-Proto $scheme;
        }
    
        ssl_certificate           /etc/letsencrypt/live/mondomaine.com/fullchain.pem;
        ssl_certificate_key       /etc/letsencrypt/live/mondomaine.com/privkey.pem;
    	ssl_trusted_certificate   /etc/letsencrypt/live/mondomaine.com/chain.pem;
    
        ssl_protocols             TLSv1 TLSv1.1 TLSv1.2;
    	ssl_prefer_server_ciphers on;
        ssl_ciphers               ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-
    RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS;
    	ssl_ecdh_curve            secp384r1;
    	
    	ssl_session_cache         shared:SSL:4m;
        ssl_session_timeout       1440m;
    	ssl_stapling              on;
    	ssl_stapling_verify       on;
    	resolver                  8.8.8.8 8.8.4.4;
    
        add_header                Strict-Transport-Security max-age=31536000;
    }

    Modifiez les directives suivantes en fonction de votre domaine et de votre configuration :

    • server_name : votre nom de domaine
    • root : répertoire spécifique à la validation de Let’s Encrypt
    • proxy_pass : IP de votre serveur tiers
    • ssl_certificate : chemin vers votre fullchain.pem
    • ssl_certificate_key : chemin vers votre privkey.pem
    • ssl_trusted_certificat : chemin vers votre chain.pem.

    Pour Apache :

    <IfModule mod_ssl.c>
        <VirtualHost *:80>
            ServerName              mondomaine.com
            Redirect                / https://mondomaine.com
        </VirtualHost>
        <VirtualHost *:443>    
            ServerName              mondomaine.com
            ServerAlias             www.mondomaine.com
            ServerAdmin             email@mondomaine.com
            DocumentRoot            /var/www/letsencrypt/mondomaine.com
        
            
                Options       Indexes FollowSymLinks
                AllowOverride None
                Require       all granted
            
    
            ProxyPreserveHost       On
            ProxyRequests           off
            ProxyPass               /.well-known/acme-challenge/ !
            ProxyPass               / http://127.0.0.1:12345/
            ProxyPassReverse        / http://127.0.0.1:12345
            
            SSLCertificateFile      /etc/letsencrypt/live/mondomaine.com/cert.pem
            SSLCertificateKeyFile   /etc/letsencrypt/live/mondomaine.com/privkey.pem
    		SSLCertificateChainFile /etc/letsencrypt/live/mondomaine.com/chain.pem
    
            SSLEngine               on
            SSLProtocol             all -SSLv2 -SSLv3
            SSLCipherSuite          ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
            SSLHonorCipherOrder     on
            SSLCompression          off
            SSLOptions              +StrictRequire
        </VirtualHost>
    </IfModule>
    

    Modifiez les directives suivantes en fonction de votre domaine et de votre configuration :

    • ServerName, ServerAlias et Redirect : votre nom de domaine
    • ServerAdmin : votre email
    • DocumentRoot et Directory : répertoire spécifique à la validation de Let’s Encrypt
    • ProxyPass et ProxyPassReverse : IP de votre serveur tiers
    • SSLCertificateFile : chemin vers votre cert.pem
    • SSLCertificateKeyFile : chemin vers votre privkey.pem
    • SSLCertificateChainFile : chemin vers votre chain.pem.

3 – manual

Le plugin manual permet de générer un certificat en effectuant la validation du domaine vous-même. Ce plugin permet ainsi de générer des certificats sur un serveur différent de celui où se trouve votre serveur web et sans avoir les droits du super-utilisateur.

  • Partons du principe que vous disposez du virtual host suivant écoutant sur le port 80 :

    Pour Nginx :

    server {
        listen      80;
        listen      [::]:80;
        
        server_name mondomaine.com www.mondomaine.com;
    
        location / {
            root    /var/www/html;
            index   index.html index.htm;
        }
    }

    Pour Apache :

    <VirtualHost *:80>
        ServerName   mondomaine.com
        ServerAlias  www.mondomaine.com
    
        ServerAdmin  email@mondomaine.com
        DocumentRoot /var/www/html
    </VirtualHost>
    
  • Générez votre certificat en remplaçant mondomaine.com et www.mondomaine.com par vos informations :
    $ sudo certbot certonly --manual --agree-tos --no-eff-email -d mondomaine.com -d www.mondomaine.com --rsa-key-size 4096
  • Il vous sera demandé d’accepter que votre IP soit dans les bases de données de Let’s Encrypt :
    NOTE: The IP of this machine will be publicly logged as having requested this
    certificate. If you're running certbot in manual mode on a machine that is not
    your server, please ensure you're okay with that.
    
    Are you OK with your IP being logged?
    -------------------------------------------------------------------------------
    (Y)es/(N)o: Y
    
  • Afin de prouver à Let’s Encrypt que vous ayez bien la main sur votre serveur web, il vous sera demandé de créer un fichier dans le répertoire de vos ressources web et d’y inclure une clé permettant à Let’s Encrypt de valider votre certificat :
    -------------------------------------------------------------------------------
    Create a file containing just this data:
    
    nLZPRtMnudPxhJ9ChS42omwyhsk7N5Lyy29GOYQCJmk.VztX9LSnV1bIEFCVa8uRVuXfntRLl5IJKZz6LRwzX8Q
    
    And make it available on your web server at this URL:
    
    http://www.mondomaine.com/.well-known/acme-challenge/nLZPRtMnudPxhJ9ChS42omwyhsk7N5Lyy29GOYQCJmk
    
    -------------------------------------------------------------------------------
    Press Enter to Continue
    
  • Pour cela, ouvrez un nouveau terminal et créez le répertoire .well-known/acme-challenge en remplaçant /var/www/html/ par le répertoire racine de vos ressources web :
    $ sudo mkdir -p /var/www/html/.well-known/acme-challenge
  • Créez le fichier secret de validation dans le répertoire précédemment créé en remplaçant la clé nLZPRtMnudPxhJ9ChS42omwyhsk7N5Lyy29GOYQCJmk.VztX9LSnV1bIEFCVa8uRVuXfntRLl5IJKZz6LRwzX8Q par votre propre clé générée par Let’s Encrypt ainsi que le nom du fichier nLZPRtMnudPxhJ9ChS42omwyhsk7N5Lyy29GOYQCJmk :
    $ sudo bash -c 'printf "%s" nLZPRtMnudPxhJ9ChS42omwyhsk7N5Lyy29GOYQCJmk.VztX9LSnV1bIEFCVa8uRVuXfntRLl5IJKZz6LRwzX8Q > /var/www/html/.well-known/acme-challenge/nLZPRtMnudPxhJ9ChS42omwyhsk7N5Lyy29GOYQCJmk'
  • Fermez ce deuxième terminal, revenez sous votre premier terminal et appuyez sur la touche « Entrée ».
  • Let’s Encrypt génèrera automatiquement 4 fichiers dans le répertoire /etc/letsencrypt/live/mondomaine.com :
    • cert.pem : le certificat de votre domaine mondomaine.com
    • chain.pem : le certificat Let’s Encrypt
    • fullchain.pem : les certificats cert.pem et chain.pem combinés
    • privkey.pem : la clé privée du certificat.
  • Modifiez votre virtual host en fonction de votre serveur Nginx ou Apache :

    Pour Nginx :

    server {
        listen                    80;
        listen                    [::]:80;
        return                    301 https://$host$request_uri;
    }
    
    server {
        listen                    443 ssl;
        listen                    [::]:443 ssl;
        server_name               mondomaine.com www.mondomaine.com;
    
        location / {
            root                  /var/www/html;
            index                 index.html index.htm;
        }
    
        ssl_certificate           /etc/letsencrypt/live/mondomaine.com/fullchain.pem;
        ssl_certificate_key       /etc/letsencrypt/live/mondomaine.com/privkey.pem;
    	ssl_trusted_certificate   /etc/letsencrypt/live/mondomaine.com/chain.pem;
    
        ssl_protocols             TLSv1 TLSv1.1 TLSv1.2;
    	ssl_prefer_server_ciphers on;
        ssl_ciphers               ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-
    RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS;
    	ssl_ecdh_curve            secp384r1;
    	
    	ssl_session_cache         shared:SSL:4m;
        ssl_session_timeout       1440m;
    	ssl_stapling              on;
    	ssl_stapling_verify       on;
    	resolver                  8.8.8.8 8.8.4.4;
    
        add_header                Strict-Transport-Security max-age=31536000;
    }

    Modifiez les directives suivantes en fonction de votre domaine et de votre configuration :

    • server_name : votre nom de domaine
    • root : répertoire racine de vos ressources web
    • ssl_certificate : chemin vers votre fullchain.pem
    • ssl_certificate_key : chemin vers votre privkey.pem
    • ssl_trusted_certificat : chemin vers votre chain.pem.

    Pour Apache :

    <IfModule mod_ssl.c>
        <VirtualHost *:80>
            ServerName              mondomaine.com
            Redirect                / https://mondomaine.com
        </VirtualHost>
        <VirtualHost *:443>    
            ServerName              mondomaine.com
            ServerAlias             www.mondomaine.com
            ServerAdmin             email@mondomaine.com
            DocumentRoot            /var/www/html
            
            SSLCertificateFile      /etc/letsencrypt/live/mondomaine.com/cert.pem
            SSLCertificateKeyFile   /etc/letsencrypt/live/mondomaine.com/privkey.pem
    		SSLCertificateChainFile /etc/letsencrypt/live/mondomaine.com/chain.pem
    
            SSLEngine               on
            SSLProtocol             all -SSLv2 -SSLv3
            SSLCipherSuite          ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
            SSLHonorCipherOrder     on
            SSLCompression          off
            SSLOptions              +StrictRequire
        </VirtualHost>
    </IfModule>
    

    Modifiez les directives suivantes en fonction de votre domaine et de votre configuration :

    • ServerName, Redirect et ServerAlias : votre nom de domaine
    • ServerAdmin : votre email
    • DocumentRoot : répertoire racine de vos ressources web
    • SSLCertificateFile : chemin vers votre cert.pem
    • SSLCertificateKeyFile : chemin vers votre privkey.pem
    • SSLCertificateChainFile : chemin vers votre chain.pem.
  • Redémarrez votre serveur Apache ou Nginx :
    $ sudo systemctl restart nginx

    ou

    $ sudo systemctl restart apache

4 – apache

Si vous utilisez Apache comme serveur web, le plugin apache permet de générer et d’installer automatiquement des certificats en modifiant directement votre virtual host.

  • Le plugin apache n’est pas intégré par défaut à certbot. vous devez tout d’abord l’installer :
    $ sudo apt-get install -y python-certbot-apache
  • Partons du principe que vous disposiez déjà du virtual host suivant écoutant sur le port 80 :
    <VirtualHost *:80>
        ServerName   mondomaine.com
        ServerAlias  www.mondomaine.com
    
        ServerAdmin  email@mondomaine.com
        DocumentRoot /var/www/html
    </VirtualHost>
    
  • Vous devez activer le module ssl :
    $ sudo a2enmod ssl
  • Redémarrez votre serveur Apache :
    $ sudo systemctl restart apache
  • Générez votre certificat en remplaçant mondomaine.com et www.mondomaine.com par vos informations :
    $ sudo certbot --apache -d mondomaine.com -d www.mondomaine.com --rsa-key-size 4096 --agree-tos --no-eff-email
  • Il vous sera demandé si vous souhaitez laisser l’accès à la fois HTTP et HTTPS ou forcer toutes les requêtes en HTTPS :
    Please 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): 2

La configuration est terminée ! Rendez-vous désormais sur votre site désormais en HTTPS !

Sachez simplement qu’en arrière plan, Let’s Encrypt a généré un nouveau virtual host mondomaine-le-ssl.conf où l’emplacement de vos certificats et de votre clé privée est spécifié. Il inclut aussi un fichier options-ssl-apache.conf qui permet de configurer SSL pour Apache (l’algorithme de chiffrage, le type de clé supportée, etc.) :

<IfModule mod_ssl.c>
    <VirtualHost *:443>    
        ServerName              mondomaine.com
        ServerAlias             www.mondomaine.com

        ServerAdmin             email@mondomaine.com
        DocumentRoot            /var/www/html

        SSLCertificateFile      /etc/letsencrypt/live/mondomaine.com/cert.pem
        SSLCertificateKeyFile   /etc/letsencrypt/live/mondomaine.com/privkey.pem
        Include                 /etc/letsencrypt/options-ssl-apache.conf
        SSLCertificateChainFile /etc/letsencrypt/live/mondomaine.com/chain.pem
    </VirtualHost>
</IfModule>

Si la configuration proposée par défaut ne vous convient pas, vous pouvez évidemment modifier le virtual host.

Enfin si vous avez choisi la 2ème option (à savoir forcer toutes les requêtes en HTTPS), en plus d’avoir généré un nouveau virtual host mondomaine-le-ssl.conf comme pour l’option 1, Let’s Encrypt aura automatiquement modifié votre virtual host pour rediriger toutes les requêtes HTTP vers HTTPS :

<VirtualHost *:80>
    ServerName   mondomaine.com
    ServerAlias  www.mondomaine.com

    ServerAdmin  email@mondomaine.com
    DocumentRoot /var/www/html

    RewriteEngine on
    RewriteCond %{SERVER_NAME} =mondomaine.com
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

Let’s Encrypt aura généré automatiquement 4 fichiers dans le répertoire /etc/letsencrypt/live/mondomaine.com :

  • cert.pem : le certificat de votre domaine mondomaine.com
  • chain.pem : le certificat Let’s Encrypt
  • fullchain.pem : les certificats cert.pem et chain.pem combinés
  • privkey.pem : la clé privée du certificat.

5 – nginx

Si vous utilisez Nginx comme serveur web, le plugin nginx permet de générer et d’installer automatiquement des certificats en modifiant directement votre virtual host.

  • Le plugin nginx n’est pas intégré par défaut à certbot. vous devez tout d’abord l’installer :
    $ sudo apt-get install -y python-certbot-nginx
  • Partons du principe que vous disposiez déjà du virtual host suivant :
    server {
        listen      80;
        listen      [::]:80;
        
        server_name mondomaine.com www.mondomaine.com;
    
        location / {
            root    /var/www/html;
            index   index.html index.htm;
        }
    }
  • Générez votre certificat en remplaçant /var/www/html, mondomaine.com et www.mondomaine.com par vos informations :
    $ sudo certbot --nginx -d mondomaine.com -d www.mondomaine.com --rsa-key-size 4096 --agree-tos --no-eff-email
  • Il vous sera demandé si vous souhaitez laisser l’accès à la fois HTTP et HTTPS ou forcer toutes les requêtes en HTTPS :
    Please 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): 2

La configuration est terminée ! Rendez-vous désormais sur votre site désormais en HTTPS !

Sachez simplement qu’en arrière plan, Let’s Encrypt a modifié votre virtual host où l’emplacement de vos certificats et de votre clé privée a été spécifié. Il inclut aussi un fichier /etc/letsencrypt/options-ssl-nginx.conf qui permet de configurer SSL pour Nginx (l’algorithme de chiffrage, le type de clé supportée, etc.). Si la configuration proposée par défaut ne vous convient pas, vous pouvez évidemment modifier le virtual host.

Exemple de configuration modifiée si vous avez choisi l’option 1 (accepter à la fois les requêtes HTTP et HTTPS) :

server {
    listen                  80;
    listen                  [::]:80;
    server_name             mondomaine.com www.mondomaine.com;

    location / {
        root                /var/www/html;
        index               index.html index.htm;
    }
    
	listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/mondomaine.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/mondomaine.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

Exemple de configuration modifiée si vous avez choisi l’option 2 (forcer toutes les requêtes en HTTPS) :

server {
    listen                  80;
    listen                  [::]:80;
    server_name             mondomaine.com www.mondomaine.com;

    location / {
        root                /var/www/html;
        index               index.html index.htm;
    }

	listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/mondomaine.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/mondomaine.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

    if ($scheme != "https"){
        return 301 https://$host$request_uri;
    } # managed by Certbot
}

Let’s Encrypt aura généré automatiquement 4 fichiers dans le répertoire /etc/letsencrypt/live/mondomaine.com :

  • cert.pem : le certificat de votre domaine mondomaine.com
  • chain.pem : le certificat Let’s Encrypt
  • fullchain.pem : les certificats cert.pem et chain.pem combinés
  • privkey.pem : la clé privée du certificat.

3 – Améliorer la sécurité du protocole SSL/TLS (pour Nginx uniquement)

SSL/TLS utilise un système de chiffrement asymétriques (comme RSA ou Diffie-Hellman) afin de sécuriser les échanges de vos flux. Par défaut, Nginx utilise une clé de 1048 bits. En augmentant la longueur de la clé à 4096 bits, vous augmenterez ainsi la sécurité de votre protocole SSL/TLS.

Pour les utilisateurs du serveur Apache, cette manipulation n’est plus nécessaire depuis la version 2.4.7 car, depuis celle-ci, Apache utilise une clé plus complexe.

  • Générez une nouvelle clé Diffie-Hellman (DH) de 4096 bits et attribuez-lui un minimum de permissions :
    $ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
    $ sudo chmod 600 /etc/ssl/certs/dhparam.pem
  • Modifiez votre virtual host en ajoutant la directive ssl_dhparam :
    server {
        listen                    80;
        listen                    [::]:80;
        return                    301 https://$host$request_uri;
    }
    
    server {
        listen                    443 ssl;
        listen                    [::]:443 ssl;
        server_name               mondomaine.com www.mondomaine.com;
    
        location / {
            root                  /var/www/html;
            index                 index.html index.htm;
        }
    	
    	ssl_certificate           /etc/letsencrypt/live/mondomaine.com/fullchain.pem;
        ssl_certificate_key       /etc/letsencrypt/live/mondomaine.com/privkey.pem;
    	ssl_trusted_certificate   /etc/letsencrypt/live/mondomaine.com/chain.pem;
    	ssl_dhparam               /etc/ssl/certs/dhparam.pem;
    
        ssl_protocols             TLSv1 TLSv1.1 TLSv1.2;
    	ssl_prefer_server_ciphers on;
        ssl_ciphers               ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-
    RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS;
    	ssl_ecdh_curve            secp384r1;
    	
    	ssl_session_cache         shared:SSL:4m;
        ssl_session_timeout       1440m;
    	ssl_stapling              on;
    	ssl_stapling_verify       on;
    	resolver                  8.8.8.8 8.8.4.4;
    
        add_header                Strict-Transport-Security max-age=31536000;
    }
  • Redémarrez votre Nginx :
    $ sudo systemctl restart nginx
  • Rendez-vous sur SSL Labs et testez la sécurité de votre configuration SSL/TLS !

4 – Renouvellement d’un certificat

Les certificats délivrés par Let’s Encrypt sont valides 90 jours. L’outil certbot fournit une option renew permettant de renouveler l’ensemble des certificats présents sur votre serveur si et seulement si ceux-ci expirent dans moins de 30 jours.

Nous allons créer une règle crontab où le script de renouvellement sera planifié pour exécution tous les lundis à 23h42. Les traces liées à l’exécution du script seront enregistrées dans un fichier /var/log/certbot-renew.log.

  • Éditez la crontab :
    sudo crontab -e
  • Ajoutez la ligne suivante :
    • Si vous utilisez le plugin webroot, manual, nginx ou apache :
      42 23 * * 1 /usr/bin/certbot renew >> /var/log/certbot-renew.log
    • Si vous utilisez le plugin standalone, le serveur doit être arrêté avant le renouvellement du certificat (modifiez nginx en fonction de votre serveur) :
      42 23 * * 1 /usr/bin/certbot renew --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx" >> /var/log/certbot-renew.log
  • Sauvegardez et quittez.

5 – Révocation d’un certificat

Pour révoquer un certificat, il est nécessaire d’exécuter la commande suivante en remplaçant /etc/letsencrypt/live/mondomaine.com/cert.pem par votre domaine ou sous-domaine :

$ sudo certbot revoke --cert-path /etc/letsencrypt/live/mondomaine.com/cert.pem


Ubuntu 18.04 Server LTSNginx 1.14.0
Certbot 0.25.0

2 réponses
  1. Tibo
    Tibo dit :

    Bonjour,

    Ce message pour vous remercier pour ce tuto. J’ai lu et essayé un certain nombre de tuto sans succès avant de tomber sur le votre.
    J’ai des connaissances en linux plus que limitées mais grace à votre tuto, j’ai pu sécuriser mon reverse proxy nginx avec un certificat let’s encrypt en lieu et place du certificat auto-signé que j’utilisais jusqu’à maintenant.

    Encore merci.

    Répondre

Laisser un commentaire

Participez-vous à la discussion?
N'hésitez pas à contribuer!

Laisser un commentaire

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