Créer un certificat ECDSA avec Let’s Encrypt

1/52/53/54/55/5 (3 votes, moyenne: 5,00 sur 5)
Loading...
C

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

A propos de l'auteur

Nicolas Simond
Nicolas Simond

Administrateur Systèmes et Réseaux et guitariste hard rock et metal à mes heures perdues.
Je suis le créateur et l'unique rédacteur d'Abyss Project, c'est ici que je note la plupart de mes procédures et quelques divagations.

Si vous l'article vous a aidé, pensez à me payer un café :)

guest

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

11 Commentaires
Plus récents
Plus anciens Populaires
Inline Feedbacks
View all comments
Raphael
2 mois plus tôt

Bonjour, Je vous remercie pour vos tutos!! J’ai installer l’hyperviseur Proxmox en local chez moi. Mon but serait de rendre proxmox accessible sur internet pour que j’ai acces a mes VM à distance, via open VPN installé sur pfsense comme sur ce tuto: https://blog.zwindler.fr/2020/03/02/deploiement-de-proxmox-ve-6-pfsense-sur-un-serveur-dedie/ Ce tuto est concu pour pour l’installation du systeme sur serveur dédié. Mon install se fait en local, chez moi.( 1pc proxmox ; 1 pc dns et proxy revert) Sur une 2eme machine en local dans le meme reseau privé j’ai installé le service bind pour la resolution de noms. Le service est configuré et fonctionnel.… Voir plus »

Michael
Michael
2 années plus tôt

Bonjour, J’essaie désespérément de mettre ça en place sur mon rpi dans le but final d’en faire mon reverse proxy. Seul problème, je suis carrément noob en ce qui concerne linux … Bref, voici le point où je bloque. Quand je lance : openssl ecparam -genkey -name secp384r1 > privkey-p384.pem Il me répond : bash: privkey-p384.pem: Permission non accordée J’ai tenté avec une autre curve pour voir … pas mieux … J’ai tenté en faisant un sudo … pas mieux Du coup, impossible d’aller plus loin. Et je n’ai rien trouvé sur le net à ce sujet … Auriez-vous une… Voir plus »

Michael
Michael
Reply to  Nicolas Simond
2 années plus tôt

Et bien merci 🙂 Il semble que c’était exactement le problème …
J’avais dit être un noob 🙂 ça me facilitera la vie pour la suite !

Michael
Michael
Reply to  Michael
2 années plus tôt

Bonjour, Dans la suite, je retombe sur un problème : /etc/letsencrypt/letsencrypt-auto certonly -a webroot –email mail@monURL.fr –webroot-path /www/monURL.fr/ –csr /etc/letsencrypt/live-ecdsa/monURL.fr/csr-p384.der –renew-by-default –agree-tos retourne : /www/monURL.fr/ does not exist or is not a directory Faut-il installer apache avant ? Faut-il préparer autre chose ? Faut-il seulement créer le dossier ? J’ai seulement compilé nginx via ton script de compilation (sauf que je n’arrive même pas à voir 127.0.0.1 à partir du rpi, mais chaque chose en son temps)… Je sais cependant qu’il fonctionne parce que j’ai pu arrêter et redémarrer le service via : service nginx stop service nginx start J’arrive… Voir plus »

Julien HOMMET - CZS
4 années plus tôt

Superbe article, je l’ai utilisé pour mon site, ça fonctionne bien !!!

Juste une coquille à la ligne « /etc/letsencrypt/letsencrypt-auto cert… », ce n’est pas « /etc/… » mais « /opt/letsencrypt ». L’exécutable « letsencrypt-auto n’est pas dans « etc » mais « opt » 😉

Angristan
4 années plus tôt

Salut !
Y’a moyen de faire ça avec letsencrypt-auto sans créer de CSR ?