====== Activer HTTPS avec Let's Encrypt - Ubuntu 18.04 ======
Documentation: [[https://letsencrypt.org/fr/docs/]]
Tutoriel:
* [[https://www.memoinfo.fr/tutoriels-linux/configurer-lets-encrypt-apache/]]
* {{:apache:screenshot_2019-11-28_apache_et_let_s_encrypt_de_la_creation_du_certificat_a_l_installation.png?linkonly|Capture de la page au 28/11/2019}}
* [[https://www.wst.space/ssl-part1-ciphersuite-hashing-encryption/|SSL/TLS for dummies]]
* YouTube : [[https://www.youtube.com/watch?v=iLeGkWjZOCA|CentOS 8 Serveur LAMP : Partie 4 Mise en place de ModSSL Let's Encrypt et sécurisation]]
===== Résumé de la procédure =====
^ Fait sur une Ubuntu 18.04.4 LTS ^
==== 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. Installation de Certbot ====
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.
==== 3. Création du certificat ====
**À 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**) :
{{:apache:capture_d_ecran_du_2019-11-28_08-55-33.png?nolink|}}
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**.
==== 4. Configuration d'Apache ====
Pour l'instant j'ai un VirtualHost dont la configuration se
situe dans le fichier **/etc/apache2/sites-available/dev.marclebrun.be.conf**.
ServerName dev.marclebrun.be
ServerAdmin mon-adresse-mail@gmail.com
DocumentRoot /var/www
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Require all denied
Require all granted
allow from all
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Modifier le contenu comme suit :
ServerName dev.marclebrun.be
ServerAdmin marclebrun2@gmail.com
RewriteEngine on
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
ServerName dev.marclebrun.be
ServerAdmin marclebrun2@gmail.com
DocumentRoot /var/www
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Require all denied
Require all granted
allow from all
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
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
==== 5. Renouvellement du certificat ====
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