mkcert est un outil simple permettant de créer des certificats de développement approuvés localement. Cela ne nécessite aucune configuration.
$ mkcert -install Created a new local CA ? The local CA is now installed in the system trust store! ⚡️ The local CA is now installed in the Firefox trust store (requires browser restart)! ? $ mkcert example.com "*.example.com" example.test localhost 127.0.0.1 ::1 Created a new certificate valid for the following names - "example.com" - "*.example.com" - "example.test" - "localhost" - "127.0.0.1" - "::1" The certificate is at "./example.com+5.pem" and the key at "./example.com+5-key.pem" ✅
L'utilisation de certificats provenant de véritables autorités de certification (CA) pour le développement peut être dangereuse, voire impossible (pour des hôtes comme example.test
, localhost
ou 127.0.0.1
), mais les certificats auto-signés provoquent des erreurs de confiance. La gestion de votre propre autorité de certification est la meilleure solution, mais implique généralement des commandes obscures, des connaissances spécialisées et des étapes manuelles.
mkcert crée et installe automatiquement une autorité de certification locale dans le magasin racine du système et génère des certificats approuvés localement. mkcert ne configure pas automatiquement les serveurs pour utiliser les certificats, mais cela dépend de vous.
Attention : le fichier
rootCA-key.pem
que mkcert génère automatiquement donne tout pouvoir pour intercepter les requêtes sécurisées de votre machine. Ne le partagez pas.
Sur macOS, utilisez Homebrew
brew install mkcert brew install nss # if you use Firefox
ou MacPorts.
sudo port selfupdate sudo port install mkcert sudo port install nss # if you use Firefox
Sous Linux, installez d'abord certutil
.
sudo apt install libnss3-tools -or- sudo yum install nss-tools -or- sudo pacman -S nss -or- sudo zypper install mozilla-nss-tools
Ensuite, vous pouvez installer en utilisant Homebrew sous Linux
brew install mkcert
ou construire à partir des sources (nécessite Go 1.13+)
git clone https://github.com/FiloSottile/mkcert && cd mkcert go build -ldflags "-X main.Version=$(git describe --tags)"
ou utilisez les binaires prédéfinis.
curl -JLO "https://dl.filippo.io/mkcert/latest?for=linux/amd64" chmod +x mkcert-v*-linux-amd64 sudo cp mkcert-v*-linux-amd64 /usr/local/bin/mkcert
Pour les utilisateurs d'Arch Linux, mkcert
est disponible sur le référentiel officiel d'Arch Linux.
sudo pacman -Syu mkcert
Sous Windows, utilisez Chocolatey
choco install mkcert
ou utilisez Scoop
scoop bucket add extras scoop install mkcert
ou créez à partir des sources (nécessite Go 1.10+), ou utilisez les binaires pré-construits.
Si vous rencontrez des problèmes d'autorisation, essayez d'exécuter mkcert
en tant qu'administrateur.
mkcert prend en charge les magasins racine suivants :
Magasin système macOS
Magasin système Windows
Variantes Linux qui fournissent soit
update-ca-trust
(Fedora, RHEL, CentOS) ou
update-ca-certificates
(Ubuntu, Debian, OpenSUSE, SLES) ou
trust
(Arche)
Firefox (macOS et Linux uniquement)
Chrome et Chrome
Java (lorsque JAVA_HOME
est défini)
Pour installer l'autorité de certification racine locale uniquement dans un sous-ensemble d'entre elles, vous pouvez définir la variable d'environnement TRUST_STORES
sur une liste séparée par des virgules. Les options sont : "système", "java" et "nss" (inclut Firefox).
-cert-file FILE, -key-file FILE, -p12-file FILE Customize the output paths. -client Generate a certificate for client authentication. -ecdsa Generate a certificate with an ECDSA key. -pkcs12 Generate a ".p12" PKCS #12 file, also know as a ".pfx" file, containing certificate and key for legacy applications. -csr CSR Generate a certificate based on the supplied CSR. Conflicts with all other flags and arguments except -install and -cert-file.
Remarque : Vous devez placer ces options avant la liste des noms de domaine.
mkcert -key-file key.pem -cert-file cert.pem example.com *.example.com
mkcert génère automatiquement un certificat S/MIME si l'un des noms fournis est une adresse e-mail.
mkcert [email protected]
Pour que les certificats soient fiables sur les appareils mobiles, vous devrez installer l'autorité de certification racine. Il s'agit du fichier rootCA.pem
dans le dossier imprimé par mkcert -CAROOT
.
Sur iOS, vous pouvez soit utiliser AirDrop, vous envoyer l'autorité de certification par courrier électronique ou la diffuser à partir d'un serveur HTTP. Après l'avoir ouvert, vous devez installer le profil dans Paramètres > Profil téléchargé, puis lui accorder une confiance totale.
Pour Android, vous devrez installer l'autorité de certification, puis activer les racines utilisateur dans la version de développement de votre application. Voir cette réponse StackOverflow.
Node n'utilise pas le magasin racine du système, il n'acceptera donc pas automatiquement les certificats mkcert. Au lieu de cela, vous devrez définir la variable d'environnement NODE_EXTRA_CA_CERTS
.
export NODE_EXTRA_CA_CERTS="$(mkcert -CAROOT)/rootCA.pem"
Le certificat CA et sa clé sont stockés dans un dossier de données d'application dans l'accueil de l'utilisateur. Vous n'avez généralement pas à vous en soucier, car l'installation est automatisée, mais l'emplacement est imprimé par mkcert -CAROOT
.
Si vous souhaitez gérer des autorités de certification distinctes, vous pouvez utiliser la variable d'environnement $CAROOT
pour définir le dossier dans lequel mkcert placera et recherchera les fichiers de l'autorité de certification locale.
L'installation dans le magasin de confiance ne nécessite pas la clé CA, vous pouvez donc exporter le certificat CA et utiliser mkcert pour l'installer sur d'autres machines.
Recherchez le fichier rootCA.pem
dans mkcert -CAROOT
copiez-le sur une autre machine
définir $CAROOT
dans son répertoire
exécutez mkcert -install
N'oubliez pas que mkcert est destiné à des fins de développement et non de production, il ne doit donc pas être utilisé sur les machines des utilisateurs finaux et que vous ne devez pas exporter ou partager rootCA-key.pem
.