Outils pour utilisateurs

Outils du site


web_server_-_https_grade_a

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
web_server_-_https_grade_a [2024/02/26 17:06] Garyweb_server_-_https_grade_a [2024/03/06 21:46] (Version actuelle) – supprimée Gary
Ligne 1: Ligne 1:
-====== Web server - HTTPS grade A ====== 
  
-<WRAP center round info 100%> 
-Date: 2022 
-Installation faite sur Debian 11 
-</WRAP> 
- 
-<WRAP center round important 100%> 
-La configuration restreint les navigateurs utilisables 
-- Internet Explorer 11* 
-- Chrome 70 
-- Firefox 63 
-</WRAP> 
- 
-Objectif de cette article: Obtenir un serveur répondant en HTTPS from scratch avec un grade A+ 
- 
-===== Pré-requis: ===== 
-Debian 11 ([[debian_11_-_perfect_server|Voir cet article]]) 
- 
-Note: On partira d'un serveur vierge avec uniquement le package apache2 d'installé ''apt install apache2 -y'' 
- 
-===== Activation SSL sur Apache2 ===== 
- 
-Il est nécessaire d'activer l'écoute sur le protocol 443 dans le fichier ''/etc/apache2/ports.conf''. Le port 80 doit rester ouvert pour la négociation du certificat 
-<code bash [enable_line_numbers="true"]> 
-# /etc/apache2/ports.conf 
-Listen 80 
-Listen 443 
-</code> 
- 
-Quelques mods à activer: 
-<code bash [enable_line_numbers="true"]> 
-a2enmod ssl 
-a2enmod headers 
-a2enmod http2 
-</code> 
- 
-  * Liste à pucemod_ssl: Active la gestion du SSL/TLS 
-  * mod_headers: Personnalisation des en-têtes HTTP. Il sera utilisé pour informer le navigateur d'utiliser exclusivement HTTPS 
-  * http2: Plus rapide que HTTP/1.1, élimite d'anciens protocols de sécurité obsolète 
- 
-===== Certbot ===== 
-Source: https://certbot.eff.org/instructions?ws=apache&os=debianbuster 
- 
-<code bash [enable_line_numbers="true"]> 
-# Installation de snapd 
-apt install snapd 
-snap install core 
-snap refresh core 
- 
-# Installation de certbot 
-snap install --classic certbot 
-ln -s /snap/bin/certbot /usr/bin/certbot 
- 
-# On configure Let's Encrypt pour notre serveur: 
-certbot --apache 
-</code> 
- 
-<WRAP safety> 
-✅ A partir d'ici, notre site devrait être en HTTPS certifié Let's Encrypt avec une configuration déjà correct faite par Certbot 
-</WRAP> 
- 
-Le renouvellement se fait automatiquement, il y a un timer dans systemd. Il peut être simulé (dry-run) avec cette commande: ''certbot renew --dry-run'' 
- 
-==== Modifications constatée dans la configuration Apache2: ==== 
-<code bash [enable_line_numbers="true"]> 
-# /etc/apache2/sites-enabled/<ssl-conf>.conf 
-<VirtualHost *:443> 
- # ... 
-    SSLEngine on 
- 
-    SSLCertificateFile      /etc/letsencrypt/live/httpslabs.gh3.be/fullchain.pem 
-    SSLCertificateKeyFile /etc/letsencrypt/live/httpslabs.gh3.be/privkey.pem 
-    Include /etc/letsencrypt/options-ssl-apache.conf 
- # ... 
-</VirtualHost> 
-</code> 
- 
-===== Amélioration de la sécurité ===== 
-Source: https://ssl-config.mozilla.org/ 
- 
-On se base sur une configuration "moderne" proposé par Mozilla 
- 
-==== Redirection HTTP vers HTTPS. ==== 
-**Note**: Cette manipulation n'est pas idéale car du man-in-the-middle est toujours possible le temps de la redirection vers HTTPS 
- 
-**Note2**: Le port 80 ne peut pas être fermé car (historiquement ?) le fichier .well-known-challenge utilisé par Let's Encrypt passe par HTTP 
- 
-# /etc/apache2/sites-enabled/<http-conf>.conf 
- 
-<code bash [enable_line_numbers="true"]> 
-<VirtualHost *:80> 
-    # ... 
-    RewriteEngine On 
-    RewriteCond %{REQUEST_URI} !^/\.well\-known/acme\-challenge/ 
-    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L] 
-    # ... 
-</VirtualHost> 
-</code> 
- 
-<code bash [enable_line_numbers="true"]> 
-# /etc/apache2/sites-enabled/<https-conf>.conf 
-<VirtualHost _default_:443> 
-    # ... 
-     
-    # Activation de HTTP/2, rétrocompatibilité vers HTTP/1.1 si besoin (mod_http2 
-    Protocols h2 http/1.1 
- 
-    # Activation du HTTP Strict Transport Security (mod_header) 
-    Header always set Strict-Transport-Security "max-age=63072000" 
-    # ... 
-</VirtualHost> 
- 
-# OCSP Stapling - https://fr.wikipedia.org/wiki/Agrafage_OCSP 
-SSLUseStapling On 
-SSLStaplingCache "shmcb:logs/ssl_stapling(32768)" 
-</code> 
- 
-==== Modification du chiffrement ==== 
-On a remarqué précédemment que Certbot a créé un fichier de configuration des options SSL, on modifiera là dedans. 
- 
-<code bash [enable_line_numbers="true"]> 
-# /etc/letsencrypt/options-ssl-apache.conf 
- 
-# ... 
-# SSLProtocol             all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 
-SSLProtocol             TLSv1.2 TLSv1.3 
-#SSLCipherSuite          ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 
-SSLCipherSuite          ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305 
-# ... 
-</code> 
- 
-2 changements ici : 
- 
-  * Support de TLSv1.2 et TLSv1.3\\ **Note**: curl 7.83.1 ne supporte pas TLSv1.3\\ **Note2**: Internet Explorer 11 ne supporte pas TLSv1.3\\ https://caniuse.com/tls1-3 
-  * Désactivation des protocoles DHE-RSA-AES128-GCM-SHA256 et DHE-RSA-AES256-GCM-SHA384\\ DH (Diffie Hellman) est déprécié par rapport à Eliptic Curve Diffie-Hellman (ECDH) 
web_server_-_https_grade_a.1708963569.txt.gz · Dernière modification : de Gary

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki

GH3.BE WIKI 2025