mkcert – Un outil génial qui simplifie la mise en place de certificats HTTPS en local
Vous aussi, vous en avez marre de cliquer sur “Continuer vers ce site (non sécurisé)” dans votre navigateur à chaque fois que vous testez votre app en local ? Puis surtout, ça fait peur à tout le monde pendant les démos client…
Alors ça tombe bien car j’ai la solution parfaite pour vous.
Ça s’appelle
mkcert
et c’est un outil transforme la galère des certificats HTTPS locaux en une simple commande. 2 minutes chrono et vous avez des certificats valides, reconnus par votre navigateur, sans avoir à fouiller dans les tréfonds d’OpenSSL.
Le truc cool avec mkcert, c’est qu’il crée automatiquement une autorité de certification locale sur votre machine. Cette CA est ensuite directement installée dans votre système et reconnue par tous vos navigateurs. Comme ça, plus besoin de jongler avec des certificats auto-signés auxquels personne ne fait confiance. Chrome, Firefox, Safari… tout le monde est content et affiche le petit cadenas vert. Trop chouette non ?
Alors, comment ça marche ? Sur macOS avec Homebrew, moi j’ai fait ça :
brew install mkcert nss
mkcert -install
Et voilà, votre autorité de certification locale est créée et installée. Maintenant, vous voulez un certificat pour votre projet ? Une ligne suffit :
mkcert example.com *.example.com localhost 127.0.0.1
Et vous avez alors vos fichiers .pem
prêts à être utilisés avec n’importe quel serveur web. Pas de configuration prise de tête, pas de paramètres chelous, juste ce qu’il faut pour bosser tranquillement. Notez que si besoin, vous pouvez renommer le .pem en .crt et le -key.pem en .key, et ça fonctionnera.
Ce qui est vraiment bien pensé, c’est que mkcert gère tous les cas d’usage du développement moderne. Vous pouvez donc créer des certificats pour des domaines spécifiques, des wildcards pour couvrir tous vos sous-domaines, localhost évidemment, mais aussi des adresses IP. Vous développez une API qui doit être accessible depuis votre téléphone sur le réseau local ? Pas de problème, ajoutez l’IP de votre machine et c’est réglé.
D’ailleurs, pour ceux qui bossent sur Windows, l’installation peut se faire via Chocolatey ou Scoop. Et sous Linux, il faut d’abord installer les outils NSS avec libnss3-tools
, puis vous pouvez récupérer les binaires directement depuis les URLs stables comme [https://dl.filippo.io/mkcert/latest?for=linux/amd64](https://dl.filippo.io/mkcert/latest?for=linux/amd64)
.
Un point super important c’est que mkcert n’est PAS fait pour la production. Le fichier rootCA-key.pem
généré contient la clé privée de votre autorité de certification locale donc si quelqu’un met la main dessus, il peut créer des certificats valides pour n’importe quel domaine sur votre machine. Pour la prod, on reste donc sur Let’s Encrypt ou une vraie autorité de certification.
Mais après pour le développement local, c’est juste parfait. Plus besoin de se battre avec les configurations Apache ou Nginx pour faire accepter des certificats bidons. Plus de warnings et surtout, vous pouvez enfin tester correctement toutes les fonctionnalités qui nécessitent HTTPS : service workers, API de géolocalisation, caméra, micro… Tout fonctionne comme en prod.
L’outil supporte même des trucs avancés comme la génération de certificats ECDSA si vous préférez les courbes elliptiques, ou le format PKCS12 pour certaines applications Java. Vous pouvez personnaliser l’emplacement de sortie des certificats, créer des certificats pour l’authentification client…
Bref, malgré que ce soit simple à mettre en place, mkcert couvre en réalité tous les besoins. Je vous recommande donc de tester ça !
Merci à Lorenper pour la découverte !
Source : korben.info