25 Sep 2014, 21:49

SSL, SHA-2 pour des certificats plus sûrs

En discutant certificats ssl avec @nhoizey, @vr m'a fait remarquer que Gandi et StartSSL (et d'autres) généraient des certificats en utilisant le protocol SHA-1 et que cela était "mal" car ce protocole est considéré comme "faible".

Je me suis alors souvenu que j'avais généré mon certificat en SHA-2. Toutefois, en testant, il se trouvait qu'un bout de la chaîne de certification était encore en SHA-1 même si mon certificat était en SHA-2.

N'écoutant que mon courage post-dinatoire, j'ai donc repris la procédure d'installation du certificat sous nginx fournie par StartSSL et ensuite j'ai adapté pour utiliser des certificats au format SHA-2.

En lieu et place de :

wget http://www.startssl.com/certs/ca.pem
wget http://www.startssl.com/certs/sub.class1.server.ca.pem
cat ssl.crt sub.class1.server.ca.pem ca.pem > /etc/nginx/conf/ssl-unified.crt

il faut faire :

wget http://www.startssl.com/certs/ca-sha2.pem
wget http://www.startssl.com/certs/class2/sha2/pem/sub.class2.server.sha2.ca.pem
cat ssl.crt sub.class2.server.sha2.ca.pem ca-sha2.pem > /etc/nginx/conf/ssl-unified.crt

Cela demande bien sûr que votre fichier ssl.crt soit déjà au format SHA-2 ; s'il est au format SHA-1, il faut en regénérer un nouveau avec les éventuels frais de révocation/renouvellement.

Relancer nginx, refaire le test et le tour est joué :)

Donc si vous générez des certificats, vérifiez les options de votre autorité de certification ; apparemment StartSSL fait du SHA-2 par défaut pour les nouveaux certificats comme indiqué sur le site fournissant le test ; Pour Gandi, c'est en cours de développement.