Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
apache:activer_https_avec_lets_encrypt [2019/11/28 08:37] marclebrun [Résumé de la procédure] |
apache:activer_https_avec_lets_encrypt [2021/02/10 19:01] (Version actuelle) marclebrun |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Activer HTTPS avec Let's Encrypt ====== | + | ====== Activer HTTPS avec Let's Encrypt - Ubuntu 18.04 ====== |
Documentation: [[https://letsencrypt.org/fr/docs/]] | Documentation: [[https://letsencrypt.org/fr/docs/]] | ||
Ligne 6: | Ligne 6: | ||
* [[https://www.memoinfo.fr/tutoriels-linux/configurer-lets-encrypt-apache/]] | * [[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}} | * {{: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 ===== | ===== Résumé de la procédure ===== | ||
- | Vérifier si les modules **ssl** et **rewrite** sont bien activés. | + | ^ Fait sur une Ubuntu 18.04.4 LTS ^ |
- | Les activer si ce n'est pas le cas. | + | |
+ | ==== 1. Modules Apache ==== | ||
+ | |||
+ | Vérifier si les modules nécessaires sont bien activés. | ||
<code bash> | <code bash> | ||
- | apachectl -M | + | sudo apachectl -M |
</code> | </code> | ||
+ | |||
+ | 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 : | ||
<code bash> | <code bash> | ||
- | a2enmod ssl | + | sudo a2enmod ssl |
- | a2enmod rewrite | + | sudo a2enmod rewrite |
- | systemctl restart apache2 | + | sudo a2enmod headers |
+ | sudo systemctl restart apache2 | ||
</code> | </code> | ||
+ | |||
+ | ==== 2. Installation de Certbot ==== | ||
Télécharger **Certbot** dans le dossier **/opt** et l'exécuter une première | 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 | fois, accepter l'installation des dépendances mais **ne pas faire l'étape | ||
de création**. | de création**. | ||
+ | |||
+ | **À faire en root** | ||
<code bash> | <code bash> | ||
Ligne 35: | Ligne 54: | ||
Lorsqu'il demande l'adresse email, entrer **'c'** pour annuler. | Lorsqu'il demande l'adresse email, entrer **'c'** pour annuler. | ||
- | Création du certificat : | + | ==== 3. Création du certificat ==== |
+ | |||
+ | **À faire en root** | ||
<code bash> | <code bash> | ||
+ | cd /opt | ||
./certbot-auto certonly --webroot --webroot-path /var/www/mon_site_web/ | ./certbot-auto certonly --webroot --webroot-path /var/www/mon_site_web/ | ||
--domain marclebrun.be --domain www.marclebrun.be | --domain marclebrun.be --domain www.marclebrun.be | ||
Ligne 54: | Ligne 76: | ||
Il va y avoir un email envoyé à l'adresse spécifiée, il faut y répondre pour | Il va y avoir un email envoyé à l'adresse spécifiée, il faut y répondre pour | ||
- | qu'elle soit vérifiée. | + | qu'elle soit vérifiée et souscrire à la newsletter de l'**Electronic Frontier Foundation**. |
- | //(... à suivre ...)// | + | ==== 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**. | ||
+ | |||
+ | <code apache /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> | ||
+ | </code> | ||
+ | |||
+ | Modifier le contenu comme suit : | ||
+ | |||
+ | <code apache /etc/apache2/sites-available/dev.marclebrun.be.conf> | ||
+ | <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> | ||
+ | </code> | ||
+ | |||
+ | Tester la configuration : | ||
+ | |||
+ | <code bash> | ||
+ | sudo apachectl configtest | ||
+ | </code> | ||
+ | |||
+ | S'il répond ''Syntax OK'', tout va bien. | ||
+ | |||
+ | Si erreur ''Invalid command 'Header', ...'' cela signifie que le module | ||
+ | **Header** n'est pas activé. | ||
+ | |||
+ | <code bash> | ||
+ | sudo a2enmod headers | ||
+ | sudo systemctl restart apache2 | ||
+ | </code> | ||
+ | |||
+ | ==== 5. Renouvellement du certificat ==== | ||
+ | |||
+ | Refaire la commande d'obtention du certificat, puis recharger Apache. | ||
+ | |||
+ | <code bash> | ||
+ | cd /opt | ||
+ | ./certbot-auto certonly --webroot --webroot-path /var/www/mon_site_web/ | ||
+ | --domain marclebrun.be --domain www.marclebrun.be | ||
+ | --email mon@email.com | ||
+ | </code> | ||
+ | |||
+ | <code bash> | ||
+ | sudo systemctl reload apache2 | ||
+ | </code> | ||