Aujourd’hui, je vous montre comment j’ai mis en place un certificat ECDSA avec Let’s Encrypt, que j’utilise depuis l’année dernière.
Let’s Encrypt a annoncé il y a quelques mois qu’il sera possible au courant de l’année 2018 de créer des certificats ECDSA, pour plus de sécurité et de rapidité.
L’algorithme ECDSA
L’algorithme ECDSA (abbréviation d’Elliptic Curve Digital Signature Algorithm) a été proposé pour la première fois par Scott Vanstone en 1992.
Les signatures basées sur l’algorithme d’ECS, l’ancêtre de ECDSA, présente plusieurs avantages majeurs par rapport aux algorithmes RSA : leur taille est plus réduite et ils sont créés bien plus rapidement.
La vérification basée sur les algorithmes ECC est extrêmement rapide également.
Vos sauvegardes sont-elles vraiment fiables ?
Une sauvegarde que vous n'avez jamais testée n'est pas une sauvegarde — c'est une illusion de sécurité. Je mets en place des backups automatisés, hors-site, vérifiés, avec procédure de restauration documentée.
Mettons en place une vraie stratégie de backup →Les avantages d’utiliser ECDSA par rapport à RSA
L’utilisation d’ECDSA pour les signatures numériques présente d’importants avantages, dont notamment:
- un niveau de sécurité élevé,
- pas de problèmes avec la performance d’applications,
- un processus rapide de signature et de vérification (40% plus rapide que RSA),
- adapté à la montée en puissance de la sécurité des applications,
- support pour les pré-requis modernes de l’industrie
Une sécurité et une rapidité accrues donc, avec un usage de données réduit. Parfait.
Création d’un certificat ECDSA avec Let’s Encrypt
1. On crée les nouveaux répertoires pour notre certificat ECDSA:
mkdir -p /etc/letsencrypt/live-ecdsa/example.com/letmp
mkdir -p /etc/letsencrypt/live-ecdsa/example.com/backup
cd /etc/letsencrypt/live-ecdsa/example.com
2. On crée une clé privée avec l’algorithme secp384r1:
openssl ecparam -genkey -name secp384r1 > privkey-p384.pemLangage du code : CSS (css)
3. On crée un Certificate Signing Request (CSR):
openssl req -new -sha256 -key privkey-p384.pem -subj "/CN=example.com" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:example.com,DNS:www.example.com,DNS:mail.example.com,DNS:static.example.com")) -outform der -out csr-p384.derLangage du code : JavaScript (javascript)
4. On demande la création du certificat chez Let’s Encrypt:
cd letmp
certbot certonly -a webroot --webroot-path /home/public_html -d example.com -d www.example.com -d mail.example.com -d static.example.com --csr /etc/letsencrypt/live-ecdsa/example.com/csr-p384.der --renew-by-default --agree-tos --cert-path /etc/letsencrypt/live-ecdsa/example.com/cert_ecdsa.pem --fullchain-path /etc/letsencrypt/live-ecdsa/example.com/fullchain_ecdsa.pem --chain-path /etc/letsencrypt/live-ecdsa/example.com/chain_ecdsa.pemLangage du code : JavaScript (javascript)
5. Il reste à éditer la configuration de votre serveur de fichier. Sous NginX:
nano /etc/nginx/sites-available/example.com
ajoutez-y le nouveau certificat:
# Let's Encrypt : ECDSA CERT
ssl_certificate /etc/letsencrypt/live-ecdsa/example.com/fullchain_ecdsa.pem;
ssl_certificate_key /etc/letsencrypt/live-ecdsa/example.com/privkey-p384.pem;Langage du code : PHP (php)
et on redémarre NginX:
service nginx restart
Voilà, vous venez de mettre en place votre certificat ECDSA. Voyons maintenant comment cela se passe pour la mise à jour.
Mettre à jour un certificat ECDSA avec Let’s Encrypt
Votre nouveau certificat ECDSA, comme tous les certificats standard chez Let’s Encrypt, expire dans 90 jours.
1. On se place dans notre répertoire de travail:
cd /etc/letsencrypt/live-ecdsa/example.com
Contenu du répertoire:
drwxr-xr-x 2 root root 4096 Dec 2 10:42 backup
drwxr-xr-x 2 4096 Sep 17 10:53 letmp
-rw-r--r-- 1 1631 Dec 2 10:43 cert_ecdsa.pem
-rw-r--r-- 1 1647 Dec 2 10:43 chain_ecdsa.pem
-rw-r--r-- 1 1647 Sep 17 10:48 chain.pem
-rw-r--r-- 1 376 Jul 3 16:20 csr-p384.der
-rw-r--r-- 1 3278 Dec 2 10:43 fullchain_ecdsa.pem
-rw-r--r-- 1 359 Jul 3 16:12 privkey-p384.pemLangage du code : CSS (css)
2. On déplace les certificats existants dans le dossier backup:
mv cert_ecdsa.pem backup/$(date +%Y-%m-%d)_cert_ecdsa.pem
mv fullchain_ecdsa.pem backup/$(date +%Y-%m-%d)_fullchain_ecdsa.pemLangage du code : JavaScript (javascript)
3. On se déplace dans le répertoire letmp et on lance la nouvelle génération du certificat:
cd letmp
certbot certonly -a webroot --webroot-path /home/public_html -d example.com -d www.example.com -d mail.example.com -d static.example.com --csr /etc/letsencrypt/live-ecdsa/example.com/csr-p384.der --renew-by-default --agree-tos --cert-path /etc/letsencrypt/live-ecdsa/example.com/cert_ecdsa.pem --fullchain-path /etc/letsencrypt/live-ecdsa/example.com/fullchain_ecdsa.pem --chain-path /etc/letsencrypt/live-ecdsa/example.com/chain_ecdsa.pemLangage du code : JavaScript (javascript)
Il ne reste plus qu’à relancer NginX:
service nginx restart
Résultat:
Et voilà, un certificat tout neuf, en full Perfect Forward Secrecy. Un petit cron à tout cela et le certificat se renouvelle automatiquement.
Votre site a été piraté ?
Redirections suspectes, pages injectées, compte admin fantôme, blacklist Google — une compromission WordPress ça se nettoie méthodiquement. Je localise l'infection, j'éradique le code malveillant et je referme les portes.
Aidez-moi à reprendre le contrôle →
