Passer au https avec votre serveur apache

Publié
Commentaires Aucun

Mettons un peu de sécurité sur notre serveur web

Il est bien connu que nos échanges sur internet peuvent (sont) être lus très simplement en analysant les flux réseau

hacked.jpg

Même si votre site web ne transporte pas de secrets, il est désagréable de savoir que l’on peut être facilement espionné, ne serait-ce que pour connaître les habitudes de lecture des utilisateur

c’est plus gênant si le site gère l’authentification des utilisateurs ou de l’administrateur du site

Jusqu’à il y a peu, il était coûteux d’obtenir un certificat signé par une autorité de certification qui était accepté par les navigateurs.
Depuis quelques temps, le projet letsencrypt ( https://letsencrypt.org/ ) permet de sécuriser son site avec un certificat signé gratuit

Veuillez noter que pour obtenir un certificat ssl de la part de letsencrypt il faut avoir un nom de domaine
Le certificat sert à authentifier votre site, donc son nom de domaine.

Une fois ce certificat obtenu, il faut paramétrer son serveur apache en excluant les protocoles non surs (par exemple ssl1)

chains.jpg

Ci dessous vous trouverez les recommandations de mozilla et un exemple des informations à positionner dans le fichier de configuration de apache pour le port 443 utilisé nativement pour les échanges https
(Bien entendu vous pouvez choisir un autre port)

Recommandation mozilla
https://mozilla.github.io/server-side-tls/ssl-config-generator/

Contenu à ajouter dans votre fichier /etc/apache2/site-available/default-ssl
Pour les différents systèmes d’exploitation, il suffit de modifier les chemins qui référencent les certificats

<VirtualHost *:443>
    ...
    SSLEngine on
#    SSLCertificateFile      /path/to/signed_certificate
#    SSLCertificateChainFile /path/to/intermediate_certificate
#    SSLCertificateKeyFile   /path/to/private/key
#    SSLCACertificateFile    /path/to/all_ca_certs

#exemple avec letsencrypt
        SSLCertificateFile    /etc/letsencrypt/live/votre-site/cert.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/votre-site/privkey.pem
        SSLCertificateChainFile  /etc/letsencrypt/live/votre-site/chain.pem

# HSTS (mod_headers is required) (15768000 seconds = 6 months)
Header always set Strict-Transport-Security "max-age=15768000"
    ...
</VirtualHost>

# modern configuration, tweak to your needs
SSLProtocol             all -SSLv3 -TLSv1
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:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK
SSLHonorCipherOrder     on
SSLCompression          off
SSLSessionTickets       off

# OCSP Stapling, only in httpd 2.3.3 and later
SSLUseStapling          on
SSLStaplingResponderTimeout 5
SSLStaplingReturnResponderErrors off
SSLStaplingCache        shmcb:/var/run/ocsp(128000)

Vous pouvez à la fin de la configuration faire tester votre site pour vérifier qu’il est sur en soumettant l’adresse ici https://www.ssllabs.com/ssltest/

Auteur

Commentaires

Commentaires fermés pour cet article.

← Plus anciens Plus récents →