Fait sur une Ubuntu 18.04.4 LTS |
---|
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
Télécharger Certbot dans le dossier /opt et l'exécuter une première fois, accepter l'installation des dépendances mais ne pas faire l'étape de création.
À faire en root
cd /opt wget https://dl.eff.org/certbot-auto chmod a+x certbot-auto ./certbot-auto
Lorsqu'il demande l'adresse email, entrer 'c' pour annuler.
À faire en root
cd /opt ./certbot-auto certonly --webroot --webroot-path /var/www/mon_site_web/ --domain marclebrun.be --domain www.marclebrun.be --email mon@email.com
Déclarer distinctement le domaine marclebrun.be et le sous-domaine www.marclebrun.be. Pour les autres sous-domaines (dev.marclebrun.be, wiki.marclebrun.be, etc…) il est préférable de créer des certificats séparés pour chacun d'entre-eux.
Répondre aux questions posées puis laisser faire le reste.
Voici le résultat (pour le sous-domaine dev.marclebrun.be) :
Il va y avoir un email envoyé à l'adresse spécifiée, il faut y répondre pour qu'elle soit vérifiée et souscrire à la newsletter de l'Electronic Frontier Foundation.
Pour l'instant j'ai un VirtualHost dont la configuration se situe dans le fichier /etc/apache2/sites-available/dev.marclebrun.be.conf.
<VirtualHost *:80> ServerName dev.marclebrun.be ServerAdmin mon-adresse-mail@gmail.com DocumentRoot /var/www <Directory /var/www> Options Indexes FollowSymLinks MultiViews AllowOverride all Require all denied Require all granted allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Modifier le contenu comme suit :
<VirtualHost *:80> ServerName dev.marclebrun.be ServerAdmin marclebrun2@gmail.com RewriteEngine on RewriteCond %{HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} </VirtualHost> <VirtualHost *:443> ServerName dev.marclebrun.be ServerAdmin marclebrun2@gmail.com DocumentRoot /var/www <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride all Require all denied Require all granted allow from all </Directory> SSLEngine on SSLCertificateFile /etc/letsencrypt/live/dev.marclebrun.be/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/dev.marclebrun.be/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/dev.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}/error.log CustomLog ${APACHE_LOG_DIR}/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
Refaire la commande d'obtention du certificat, puis recharger Apache.
cd /opt ./certbot-auto certonly --webroot --webroot-path /var/www/mon_site_web/ --domain marclebrun.be --domain www.marclebrun.be --email mon@email.com
sudo systemctl reload apache2