« Sécurisation SSL / TLS de apache » : différence entre les versions

Aller à la navigation Aller à la recherche
(10 versions intermédiaires par le même utilisateur non affichées)
Ligne 5 : Ligne 5 :
=NB :=
=NB :=
* il semblerait que sslprotocol ne puisse pas être défini dans une vhost (pour être exact, seul le premier sslprotocol lu par apache est pris en compte. Le mieux est de le définir dans /etc/apache2/mods-enabled/ssl.conf
* il semblerait que sslprotocol ne puisse pas être défini dans une vhost (pour être exact, seul le premier sslprotocol lu par apache est pris en compte. Le mieux est de le définir dans /etc/apache2/mods-enabled/ssl.conf
* SSLCipherSuite peut lui être défini plusieurs fois à condition d'aller du plus sécurisé au moins sécuriser (le moins sécurisé dans ssl.conf, le plus sécurisé dans la vhost)
* SSLCipherSuite peut lui être défini plusieurs fois à condition d'aller du moins sécurisé (celui avec le plus de ciphers autorisés) au plus sécurisé (celui avec les ciphers les plus restrictifs) (le moins sécurisé dans ssl.conf, le plus sécurisé dans la vhost)
* l'ordre des autorités intermédiaires dans le fichier de chaine de certification : du plus proche du certificat au plus éloigné. En gros : <code>cat signing_ca.pem intermediate_ca.pem root_ca.pem > cachain.pem</code>
* l'ordre des autorités intermédiaires dans le fichier de chaine de certification : du plus proche du certificat au plus éloigné. En gros : <code>cat signing_ca.pem intermediate_ca.pem root_ca.pem > cachain.pem</code>


Ligne 20 : Ligne 20 :


==ECDH==
==ECDH==
Par défaut, apache utilise ECC 256 bits quelque soit la taille de la clé rsa utilisé.<br>
Par défaut, apache utilise ECC 256 bits (secp256r1 aussi parfois nommé prime256v1) quelque soit la taille de la clé rsa utilisé.<br>
Vous pouvez cependant forcer l'utilisation d'une courne ECC plus grande en l'ajoutant après le certificat ssl défini par la directive <code>SSLCertificateFile</code> (il faudra donc le faire pour chaque site que vous sécurisez en ssl ...) :  
Vous pouvez cependant forcer l'utilisation d'une courbe ECC plus grande en l'ajoutant après le certificat ssl défini par la directive <code>SSLCertificateFile</code> (il faudra donc le faire pour chaque site que vous sécurisez en ssl ...) :  
<pre>openssl ecparam -name secp521r1 -out /etc/ssl/private/ecdh521r1.pem
 
cat /etc/ssl/private/ecdh521r1.pem >> /etc/ssl/votresite.tld.pem
<pre>openssl ecparam -name secp384r1 -out /etc/ssl/private/ecdhsecp384r1.pem
cat /etc/ssl/private/ecdhsecp384r1.pem >> /etc/ssl/votresite.tld.pem
</pre>
</pre>


pour voir la liste des courbes disponibles :
pour voir la liste des courbes disponibles :
<pre>openssl ecparam -list_curves</pre>
<pre>openssl ecparam -list_curves</pre>
A l'heure ou j'écris ces lignes :
* firefox 52 supporte les courbes x25519, secp256r1, secp384r1 et secp521r1
* chrome 57 supporte les courbes tls_grease_8a8a, x25519, secp256r1 et secp384r1
* vous pouvez vous faire une idée des courbes supportés pour chaque navigateur ici : https://www.ssllabs.com/ssltest/clients.html
<br>
On peut aussi vérifier la courbe utilisé :
<pre>openssl ecparam -in /etc/ssl/private/ecdhsecp384r1.pem -text -noout</pre>


Dès  Apache 2.4.8 et OpenSSL 1.0.2, on peut dire a apache quelle courbe utiliser de manière globale par ordre de priorité et ce pour tous les sites (plus de necessité de le faire dans chaque fichier .pem) :
Dès  Apache 2.4.8 et OpenSSL 1.0.2, on peut dire a apache quelle courbe utiliser de manière globale par ordre de priorité et ce pour tous les sites (plus de necessité de le faire dans chaque fichier .pem) :
Ligne 66 : Ligne 75 :
nmap --script ssl-cert,ssl-enum-ciphers -p 443,465,993,995 yoursite.tld
nmap --script ssl-cert,ssl-enum-ciphers -p 443,465,993,995 yoursite.tld
</pre>
</pre>
https://ssllabs.com <br>
https://tls.imirhil.fr


=HSTS, HPKP et DANE/TLSA=
=HSTS, HPKP et DANE/TLSA=
4 203

modifications

Menu de navigation