Une petite pierre à l'édifice de la culture de l'informatique en français
Dans ce premier volet, d'une série consacré aux technologies du monde informatique en français, je voudrais mettre en avant Let's Encrypt.
Je pense que beaucoup d'entre vous connaissent déjà puisque lancé il y a bientôt 3 ans maintenant!
Oui pour un premier sujet j'aurais pu prendre quelque chose de moins connu, mais comme aujourd'hui je bascule certaines de mes applications qui ne l'étaient pas déjà sur certificat Let's Encrypt autant en profiter
Contexte
Il y a encore quelques années, les certificats SSL/TLS (le fameux "s" de https entre autre) étaient principalement utilisés pour sécuriser les transactions sur les sites E-commerce. Sécurisation effectuée d'une part par l'utilisation du chiffrement lors de la transmission de données et de la vérification de l'identité du site web d'autre part.
Ce fut alors la création d'un petit groupe de société monopolisant la distribution de certificats SSL/TLS. Un petit monde bien fermé qui comme d'habitude dans le monde de l'informatique décida que le produit se devait d'être cher et élitiste.
Puis les choses s'emballèrent et le certificat SSL/TLS se démocratisa à toute sorte d'applications web, poussé aussi par un Google bien décidé à éradiquer le http par du https.
Let's Encrypt
Il y a encore un peu plus d'un an, Let's Encrypt était marginal et ne représentait qu'une toute petite partie de la distribution de certificats SSL/TLS. Aujourd'hui c'est une belle révolution puisque que représente désormais plus de 70 millions de certificats actifs (source).
Fourni par l’Internet Security Research Group (ISRG) Let's Encrypt se veut gratuit, automatique, transparent et ouvert.
Une mentalité bien plus proche de l'état d'esprit actuel du monde de l'informatique que cela n'était le cas il y à encore quelques années.
Il s'agit donc d'une très belle initiative poussant le web dans le bon sens car offrant la possibilité à tout un chacun quelque soit ses moyens d'avoir accès aux certificats SSL/TLS.
Mise en application
Pour la mise en application, je n'aborderais le sujet que du point de vue d'une configuration ubuntu/nodejs puisque cela représente 90% de l'environnement de mes applications. Si vous désiriez voir pour un autre environnement je vous redirigerais plus vers la documentation Let's Encrypt ou bien 2 petits tutoriels FR pour Nginx et pour Apache
Pré-requis
- Un serveur Express accessible en port 80 (http) qui ne servira que pour Let's Encrypt
- Certbot d'installé (gestionnaire de certificats en Python)
Mise en place
Pour obtenir un certificat Let's Encrypt ou le renouveller il faut simplement que notre serveur soit en mesure de répondre à une demande via http.
La demande consiste en l'interrogation d'un fichier créé sur le serveur, dans le chemin ./static/.well-known/acme-challenge/
(static représentant le nom du dossier pour servir les fichiers statiques), au moment de la demande par Certbot.
Je vous conseil donc sur votre serveur express de simplement utiliser la ligne suivante pour servir le fichier app.use('/', express.static(path.join(__dirname, 'static')));
La commande de base pour créer un certificat est la suivante certbot certonly --webroot -w ./static -d mon.domaine.com
ou pour un renouvellement letsencrypt renew
car oui le certificat à une durée de validitée de 90 jours.
Personnellement pour automatiser le renouvellement tous les 90 jours j'utilise un cron qui va lancer un script node pour:
- Lancer le serveur http
- Lancer la commande de renouvellement (spawn)
- Stopper le serveur http
- Copier mon certificat au bon endroit (fs-extra)
- Relancer mon application node https
Conclusion
Comme vous pouvez le constater rien de bien complexe dans la mise en place d'un certificat Let's Encrypt et ouvre la voie à d'autres en montrant que c'est possible, qui sait peut être assisterons nous au même développement, démocratisation pour le Namecoin (bon pour lui je suis perplexe) ou autre décidant de s'attaquer aux nom de domaines internet et leur résolution en adresse IP
Si vous avez aimé cet article
N'hésitez pas à me le faire savoir par un
[ Upvote | Resteem | Commentaire ]
MERCI :)
Aide Nouveau/Futur Steemian Francophone
comprendre-steem.fr de l'excellente Roxane
Discord Franco Steem Votes : Communauté d'entraide
Discord SteemAlsace : Communauté d'entraide
Curation France Aide de ZongUin