Let's encrypt (https://letsencrypt.org/) est un service, actuellement en beta fournissant la validation de certificats SSL (pour donc du HTTPS par exemple).
Ce service est possible via d'autres autorités de certifications, comme Gandi par exemple, mais se différentie ici par sa gratuité.
Actuellement en beta, il faut donc demander une invitation sur leur site (https://letsencrypt.org/.) Le service est maintenant ouvert à tous !
Commencez par vous connecter en ssh sur le serveur hébergeant le site que vous souhaitez passer en ssh.
Placez vous dans un dossier (de préférence, que vous retrouverez, afin de télécharger l'utilitaire,) vous devez avoir GIT d'installé.
cd /root/ git clone https://github.com/letsencrypt/letsencrypt cd letsencrypt
Si vous avez apache ou nginx qui tourne (ou n'importe quel truc qui écoute le port 80) sur votre serveur, vous allez devoir le couper le temps de la génération, ici avec apache :
service apache2 stop
On peut maintenant lancer la création du certificat :
./letsencrypt-auto --server https://acme-v01.api.letsencrypt.org/directory certonly
Votre email, puis le domaine (sans le https) vous seront demandé :
Hop, le certificat est généré ! (n'oubliez pas de relancer apache2 ou nginx)
Maintenant tout se trouve dans le dossier de configuration de letsencrypt /etc/letsencrypt, dans le dossier live/votre_domaine, (avec un système d'archives et de liens symboliques afin d'éviter de modifier sa config apache/nginx à chaque renouvellement de certificat)
Il reste maintenant à configurer votre virtual host pour lui indiquer ces chemins. Avec Apache2 voici les instructions à ajouter dans votre fichier :
SSLCertificateFile "/etc/letsencrypt/live/oc.kgaut.net/cert.pem" SSLCertificateKeyFile "/etc/letsencrypt/live/oc.kgaut.net/privkey.pem" SSLCertificateChainFile "/etc/letsencrypt/live/oc.kgaut.net/chain.pem"
Evidement à adapter avec vos chemins à vous.
J'ai ajouté une redirection http => https en ajoutant ça au début de mon fichier :
<Virtualhost *:80> ServerName oc.kgaut.net RedirectMatch permanent ^(.*)$ https://oc.kgaut.net$1 </Virtualhost>
Relancez apache2 ou nginx et c'est tout bon !
Note : Le service est encore en beta, les certificats devront être regénérés au bout de 90 jours, (il peuvent l'être avant évidement). Pour cela, vous aurez juste à relancer la commande ci-dessous, qui ira écraser les anciens certificats.
./letsencrypt-auto renew
Regénération automatique de certificat
Il est possible d'automatiser automatiquement la demande de regénération de certificat à l'aide d'un petit script, (il va s'occuper de stopper apache, regénerer les certificats et enfin relancer apache :
#!/bin/bash /usr/sbin/service httpd stop /root/letsencrypt/letsencrypt-auto renew /usr/sbin/service httpd start
Evidement le script est à adapter en fonction de l'endroit où ce situe letsencrypt.
J'ai enregistré le script sous :
/root/letsencrypt-renew.sh
Pour le tester et le lancer :
./root/letsencrypt-renew.sh
Mais on peut encore faire mieux et appeler ce script de manière automatique via une tache cron !
Voici l'entrée crontab pour appeler le script tous les dimanches soirs à 23h50 :
50 23 * * 0 /root/letsencrypt-renew.sh
Commentaires
Bonjour M. Kevin Gautreau.
Je suis sous Windows 10 Pro et j'aimerai savoir s'il existe une version windows pour créer un certificat Let's Encrypt ?
@+
avec certbot c'est cool aussi ! https://certbot.eff.org/docs/using.html#apache
Bonjour,
Je cherche à générer un certificat valide utilisable sur un serveur de dev distant mais installé en local (pas en localhost). Le https en local s'obtient facilement, mais un certificat valide est requis quand on veut utiliser des Services Worker sous Chrome (Firefox n'a pas les mêmes impératifs de sécurité - et une console de dev pourrie)
Savez-vous s'il est possible de générer un certificat valide pour un serveur on-line et s'en servir pour un serveur local (en modifiant le host par exemple)
La commande "git clone https://github.com/letsencrypt/letsencrypt" ne fonctionne pas ! Elle tourne dans le vide indéfiniment !!
Je viens de tester, pas de soucis chez moi :
Bonjour,
Je viens de connaitre votre blog et j'ai fais un essai. Je suis sous windows, Git installer et j'ai une erreur à la commande suivante :
./letsencrypt-auto --server https://acme-v01.api.letsencrypt.org/directory certonly
Voici l'erreur:
"sudo" is not available, will use "su" for installation steps...
Requesting to rerun ./letsencrypt-auto with root privileges...
./letsencrypt-auto: line 161: su: command not found
Auriez-vous une petite idée ?
Merci d'avance
Ajouter un commentaire