Bonjour à tous,

Après une discussion matinale avec @PunKeel, j’ai appris que Let’s Encrypt fournissait maintenant des certificats ECDSA. Je suis intéressé car, les certificats ECDSA contrairement aux certificats RSA standards demandent beaucoup moins de puissances de calcul pour le traitement au niveau client et serveur. Tout bénef pour vous et vos visiteurs.

 

 

Bon, je vous préviens c’est un poil compliqué parce que ça utilise le client officiel qui n’est ni documenté, ni vraiment fait pour fournir ce genre de certificats. Mais c’est le client officiel et il est maintenu.

 

Dans un premier temps, récupérez le client Let’s Encrypt et lancez-le :

cd /etc
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto --help

 

Maintenant, dans la suite de la procédure, remplacez abyssproject.net et www.abyssproject.net par le nom de votre domaine.

Créez les dossiers nécessaires :

mkdir /etc/letsencrypt/live-ecdsa/
mkdir /etc/letsencrypt/live-ecdsa/abyssproject.net
cd /etc/letsencrypt/live-ecdsa/abyssproject.net
mkdir letmp

 

Attention, j’utilise la courbe secp384r1 dans l’exemple, elle devrait convenir à tous les usages. Vous pouvez voir toutes les courbes disponibles sur votre openssl avec la commande suivante :

openssl ecparam -list_curves

 

Maintenant, créez la clé privée pour votre certificat en indiquant la courbe que vous souhaitez utiliser :

openssl ecparam -genkey -name secp384r1 > privkey-p384.pem

 

Maintenant, créez un CSR, indiquez votre domaine correctement :

openssl req -new -sha256 -key privkey-p384.pem -subj "/CN=abyssproject.net" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:abyssproject.net,DNS:www.abyssproject.net")) -outform der -out csr-p384.der

 

Rendez-vous dans le dossier temporaire « letmp » et créez votre certificat avec Let’s Encrypt :

cd letmp
/etc/letsencrypt/letsencrypt-auto certonly -a webroot --email mail@abyssproject.net --webroot-path /www/abyssproject.net/ --csr /etc/letsencrypt/live-ecdsa/abyssproject.net/csr-p384.der --renew-by-default --agree-tos
cat 0001* > /etc/letsencrypt/live-ecdsa/abyssproject.net/chain.pem

 

Si l’opération réussi, vous devrez juste configurer le certificat ECDSA dans votre vhost nginx 🙂

ssl_certificate /etc/letsencrypt/live-ecdsa/abyssproject.net/chain.pem;
ssl_certificate_key /etc/letsencrypt/live-ecdsa/abyssproject.net/privkey-p384.pem;

 

Un petit coup de reload à la fin de la manipulation :

service nginx reload

 

Et voilà votre site qui utilise un certificat ECDSA (L’outil de test) 🙂

certificate-ecdsa