Outils pour utilisateurs

Outils du site


apache:activer_https_avec_lets_encrypt_ubuntu2004

Activer HTTPS avec Let's Encrypt - Ubuntu 20.04

1. Modules Apache

Vérifier si les modules nécessaires sont bien activés.

sudo apachectl -M

La liste doit contenir les lignes suivantes

  • headers_module
  • rewrite_module
  • ssl_module

Si ce n'est pas le cas, activer les modules et redémarrer Apache :

sudo a2enmod ssl
sudo a2enmod rewrite
sudo a2enmod headers
sudo systemctl restart apache2

2. Suivre la procédure

Résumé :

sudo snap install core; sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

Création du certificat :

sudo certbot certonly --apache
  • Répondre aux questions posées (adresse email, read the terms, etc…)
  • Choisir le(s) site(s) pour lequel on veut activer HTTPS
    • Mettre un ou plusieurs numéros séparés par des virgules ou espaces

Tout se fait de façon automatique :

3. Configuration d'Apache

Pour l'instant j'ai un VirtualHost dont la configuration se situe dans le fichier /etc/apache2/sites-available/www.marclebrun.be.conf.

/etc/apache2/sites-available/www.marclebrun.be.conf
<VirtualHost *:80>
    ServerName www.marclebrun.be
    ServerAdmin mon-adresse-mail@gmail.com
 
    DocumentRoot /var/www/drupal9/www.marclebrun.be/web
    <Directory /var/www/drupal9/www.marclebrun.be/web/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
        Require all denied
        Require all granted
        allow from all
    </Directory>
 
    ErrorLog ${APACHE_LOG_DIR}/www.marclebrun.be/error.log
    CustomLog ${APACHE_LOG_DIR}/www.marclebrun.be/access.log combined
</VirtualHost>

Modifier le contenu comme suit :

/etc/apache2/sites-available/dev.marclebrun.be.conf
<VirtualHost *:80>
    ServerName www.marclebrun.be
    ServerAdmin mon-adresse-mail@gmail.com
 
    RewriteEngine on
    RewriteCond %{HTTPS} !on
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
 
<VirtualHost *:443>
    ServerName www.marclebrun.be
    ServerAdmin mon-adresse-mail@gmail.com
 
    DocumentRoot /var/www/drupal9/www.marclebrun.be/web
    <Directory /var/www/drupal9/www.marclebrun.be/web/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
        Require all denied
        Require all granted
        allow from all
    </Directory>
 
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/www.marclebrun.be/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/www.marclebrun.be/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/www.marclebrun.be/chain.pem
    SSLProtocol all -SSLv2 -SSLv3
    SSLHonorCipherOrder on
    SSLCompression off
    SSLOptions +StrictRequire
    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
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
 
    ErrorLog ${APACHE_LOG_DIR}/www.marclebrun.be/error.log
    CustomLog ${APACHE_LOG_DIR}/www.marclebrun.be/access.log combined
</VirtualHost>

Tester la configuration :

sudo apachectl configtest

S'il répond Syntax OK, tout va bien.

Si erreur Invalid command 'Header', … cela signifie que le module Header n'est pas activé.

sudo a2enmod headers
sudo systemctl restart apache2

4. Renouvellement du certificat

Il n'y a plus de renouvellement automatique à faire car il y a une tâche planifiée qui le fait avant l'expiration.

Pour vérifier que le renouvellement automatique fonctionne :

sudo certbot renew --dry-run

Le système fait une simulation de renouvellement et indique si l'opération a réussi ou non.

apache/activer_https_avec_lets_encrypt_ubuntu2004.txt · Dernière modification: 2021/02/10 19:34 (modification externe)