Locahl
Acheter Locahl
HTTPSSSLcertificatmkcertdéveloppement localmacOS

mkcert SSL local sur Mac : certificat HTTPS

Configurez mkcert sur Mac pour créer des certificats HTTPS locaux fiables pour localhost, domaines .test, Vite, Next.js et Docker.

É

Équipe Locahl

·Mis à jour le ·6 min de lecture

Vous développez une PWA et les Service Workers refusent de s'activer ? Votre application utilise la Geolocation API et elle ne fonctionne qu'en production ? Le coupable : l'absence de HTTPS en local. Ce guide vous montre comment résoudre ça définitivement avec mkcert.

Comment configurer le HTTPS local sur Mac avec mkcert

Pour configurer un certificat SSL local sur Mac, installez mkcert, faites confiance à son autorité de certification locale, puis générez un certificat pour vos domaines :

1. Installez mkcert avec Homebrew : brew install mkcert. 2. Lancez mkcert -install une fois pour faire confiance à la CA locale. 3. Générez les certificats pour localhost, 127.0.0.1, ::1 et vos domaines .test. 4. Pointez votre serveur de dev vers les fichiers .pem générés. 5. Redémarrez le navigateur s'il affiche encore un avertissement de certificat.

BASH
brew install mkcert
mkcert -install
mkcert -cert-file certs/local-cert.pem -key-file certs/local-key.pem localhost 127.0.0.1 ::1 monprojet.test "*.monprojet.test"

Pourquoi HTTPS en local ?

APIs qui requièrent HTTPS

De nombreuses APIs web modernes ne fonctionnent qu'en contexte sécurisé (HTTPS) :

  • Service Workers : Requis pour les PWA
  • Geolocation API : Position GPS
  • Clipboard API : Copier/coller
  • WebRTC : Vidéo/audio
  • Web Bluetooth : Appareils Bluetooth
  • Notifications Push : Push API

Autres avantages

  • Parité dev/prod : Même comportement partout
  • Cookies sécurisés : Test des attributs Secure et SameSite
  • HTTP/2 : Requiert HTTPS
  • Crédibilité : Pas d'avertissement navigateur

Installation de mkcert

Qu'est-ce que mkcert ?

mkcert est un outil créé par Filippo Valsorda qui : 1. Crée une autorité de certification (CA) locale 2. Installe cette CA dans votre système et navigateurs 3. Génère des certificats signés par cette CA

Résultat : vos certificats locaux sont reconnus comme valides.

Installation sur Mac

BASH
# Avec Homebrew
brew install mkcert

# Installer les certificats racine
mkcert -install

Vous verrez un message demandant votre mot de passe pour installer la CA dans le trousseau système.

Vérifier l'installation

BASH
mkcert -CAROOT

Affiche le dossier contenant votre CA locale.

Créer des certificats

Pour localhost

BASH
mkcert localhost 127.0.0.1 ::1

Crée deux fichiers :

  • localhost+2.pem : Le certificat
  • localhost+2-key.pem : La clé privée

Pour un domaine personnalisé

BASH
mkcert monprojet.test

Avec wildcard (sous-domaines)

BASH
mkcert monprojet.test "*.monprojet.test"

Permet d'utiliser api.monprojet.test, admin.monprojet.test, etc.

Certificat tout-en-un

BASH
mkcert localhost 127.0.0.1 ::1 monprojet.test "*.monprojet.test"

Configurer votre serveur

Node.js / Express

JAVASCRIPT
const https = require('https');
const fs = require('fs');
const express = require('express');

const app = express();

const options = {
    key: fs.readFileSync('./localhost+2-key.pem'),
    cert: fs.readFileSync('./localhost+2.pem')
};

https.createServer(options, app).listen(3000, () => {
    console.log('HTTPS server running on https://localhost:3000');
});

Vite

JAVASCRIPT
// vite.config.js
import { defineConfig } from 'vite';
import fs from 'fs';

export default defineConfig({
    server: {
        https: {
            key: fs.readFileSync('./localhost+2-key.pem'),
            cert: fs.readFileSync('./localhost+2.pem')
        }
    }
});

Next.js

JAVASCRIPT
// next.config.js avec serveur custom
const { createServer } = require('https');
const { parse } = require('url');
const next = require('next');
const fs = require('fs');

const dev = process.env.NODE_ENV !== 'production';
const app = next({ dev });
const handle = app.getRequestHandler();

const httpsOptions = {
    key: fs.readFileSync('./localhost+2-key.pem'),
    cert: fs.readFileSync('./localhost+2.pem')
};

app.prepare().then(() => {
    createServer(httpsOptions, (req, res) => {
        const parsedUrl = parse(req.url, true);
        handle(req, res, parsedUrl);
    }).listen(3000);
});

Webpack Dev Server

JAVASCRIPT
// webpack.config.js
const fs = require('fs');

module.exports = {
    devServer: {
        https: {
            key: fs.readFileSync('./localhost+2-key.pem'),
            cert: fs.readFileSync('./localhost+2.pem')
        }
    }
};

Utiliser avec des domaines personnalisés

Configurer le fichier hosts

Pour utiliser monprojet.test au lieu de localhost :

BASH
# /etc/hosts
127.0.0.1    monprojet.test
127.0.0.1    api.monprojet.test
À lire aussiComment modifier le fichier hosts sur Mac

Créer le certificat correspondant

BASH
mkcert monprojet.test "*.monprojet.test"

Configurer le serveur

Utilisez les nouveaux fichiers générés dans votre configuration serveur.

Cas d'usage avancés

Laravel Valet

Valet intègre mkcert nativement :

BASH
valet secure monprojet

C'est tout ! Valet génère et configure automatiquement les certificats.

Docker

YAML
# docker-compose.yml
services:
  web:
    volumes:
      - ./certs:/etc/nginx/certs:ro
    environment:
      - VIRTUAL_HOST=monprojet.test
      - CERT_NAME=monprojet.test

MAMP Pro

1. Préférences > Hosts 2. Sélectionnez votre host 3. SSL > Activer 4. Importez vos certificats mkcert

Dépannage

"NET::ERR_CERT_AUTHORITY_INVALID"

La CA n'est pas installée dans le navigateur.

BASH
mkcert -install

Puis redémarrez votre navigateur.

Chrome ignore toujours le certificat

Chrome peut nécessiter un redémarrage complet :

BASH
# Mac
killall "Google Chrome"
open -a "Google Chrome"

Firefox ne reconnaît pas la CA

Firefox utilise son propre magasin de certificats. Installez-la manuellement : 1. Préférences > Vie privée et sécurité > Certificats 2. Voir les certificats > Autorités > Importer 3. Sélectionnez rootCA.pem depuis mkcert -CAROOT

Bonnes pratiques

Organisation des certificats

~/certs/
├── localhost/
│   ├── localhost+2.pem
│   └── localhost+2-key.pem
├── monprojet.test/
│   ├── monprojet.test+1.pem
│   └── monprojet.test+1-key.pem
└── README.md

Ne jamais committer les clés

GITIGNORE
# .gitignore
*.pem
certs/

Script de setup projet

BASH
#!/bin/bash
# setup-certs.sh
mkdir -p certs
cd certs
mkcert localhost 127.0.0.1 ::1 monprojet.test "*.monprojet.test"
echo "Certificats créés dans ./certs/"

Dépannage rapide

Chrome affiche NET::ERR_CERT_AUTHORITY_INVALID

Relancez :

BASH
mkcert -install
killall "Google Chrome"
open -a "Google Chrome"

Si l'erreur persiste, vérifiez que le certificat couvre exactement le domaine ouvert dans la barre d'adresse.

Le certificat ne couvre pas le sous-domaine

Générez un wildcard :

BASH
mkcert monprojet.test "*.monprojet.test"

Le serveur utilise l'ancien certificat

Arrêtez le serveur, supprimez les anciens fichiers du projet, régénérez dans certs/, puis mettez à jour la configuration.

Le domaine pointe vers le mauvais serveur

Vérifiez hosts et DNS :

BASH
dscacheutil -q host -a name monprojet.test
sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder

Pour le guide complet de l'erreur, lisez corriger mkcert NET::ERR_CERT_AUTHORITY_INVALID.

Alternatives à mkcert

Certificats auto-signés (déconseillé)

Fonctionnent mais génèrent des avertissements navigateur constants.

Tunnels (ngrok, localtunnel)

Exposent votre localhost sur Internet avec HTTPS. Utile pour tests mobiles ou webhooks.

Caddy

Serveur web avec HTTPS automatique, même en local.

Conclusion

HTTPS en local n'est plus optionnel en 2026. Avec mkcert, l'installation prend 2 minutes et vous évite des heures de frustration avec les APIs modernes. Combinez-le avec des domaines .test gérés via Locahl pour un environnement de développement professionnel.

Partager cet article
Disponible sur Windows, macOS et Linux

Prêt à simplifier votre workflow ?

Arrêtez de perdre du temps avec le terminal. Locahl vous permet de gérer votre fichier hosts en quelques clics, avec validation automatique et sans risque d'erreur.

  • Interface visuelle intuitive
  • Flush DNS automatique
  • Gestion multi-environnements
  • Sauvegardes automatiques
  • Import/Export JSON
Acheter Locahl4,99 €Paiement unique, pas d'abonnement

Avis des lecteurs

4.7(3 avis)
Alexandre T.

"mkcert a changé ma vie de développeur. Plus jamais d'erreurs SSL en local. Installation en 2 minutes grâce à ce guide."

22 juin 2025

Léa M.

"Enfin un guide clair sur les certificats locaux. La section sur les Service Workers m'a débloquée."

5 septembre 2025

Damien P.

"Très bon guide. J'aurais aimé plus de détails sur la configuration Nginx mais sinon parfait."

28 novembre 2025

Questions fréquentes

Pourquoi ai-je besoin de HTTPS en développement local ?

Certaines APIs modernes (Service Workers, Geolocation, Clipboard, WebRTC) ne fonctionnent qu'en HTTPS. De plus, cela évite les différences entre dev et production.

Qu'est-ce que mkcert ?

mkcert est un outil qui crée une autorité de certification locale et génère des certificats SSL de confiance pour vos domaines de développement.

Les certificats mkcert sont-ils sécurisés ?

Pour le développement local, oui. Ne jamais utiliser mkcert en production. Les certificats ne sont valides que sur votre machine.

Comment utiliser HTTPS avec localhost ?

Après avoir installé mkcert, exécutez 'mkcert localhost' pour créer les certificats, puis configurez votre serveur pour les utiliser.

mkcert fonctionne-t-il avec les domaines .test ?

Oui, vous pouvez créer des certificats pour n'importe quel domaine : mkcert monprojet.test '*.monprojet.test'

Pourquoi le navigateur affiche-t-il NET::ERR_CERT_AUTHORITY_INVALID avec mkcert ?

Soit la CA locale mkcert n'est pas encore approuvée, soit le certificat ne couvre pas le nom d'hôte exact dans la barre d'adresse. Lancez mkcert -install, régénérez le certificat pour ce nom d'hôte, puis redémarrez complètement le navigateur.

Comment utiliser mkcert SSL local avec Vite ou Next.js ?

Générez les fichiers cert et key, puis pointez le serveur de dev dessus. Vite utilise server.https avec les chemins key/cert ; Next.js prend en charge next dev --experimental-https avec --experimental-https-key et --experimental-https-cert.

Articles similaires

6 min de lecture
mkcertHTTPSSSL

Corriger mkcert NET::ERR_CERT_AUTHORITY_INVALID

Corrigez NET::ERR_CERT_AUTHORITY_INVALID avec mkcert sur Mac : CA locale, certificat, domaine exact, Chrome, Firefox et hosts.

É

Équipe Locahl

Outils développeurs

9 min de lecture
Dockerfichier hostsmacOS

Fichier hosts et Docker sur Mac

Configurez le fichier hosts avec Docker et docker-compose sur Mac : domaines locaux, réseaux Docker et bonnes pratiques.

L

Locahl Team

8 min de lecture
LaravelWordPressdéveloppement local

Fichier hosts pour Laravel et WordPress

Guide complet pour configurer le fichier hosts sur Mac pour le développement local avec Laravel et WordPress. Domaines locaux, virtual hosts, bonnes pratiques.

L

Locahl Team

6 min de lecture
développement localmacOSDocker

Environnement de développement Mac (2026)

Configurez un environnement dev local sur Mac : MAMP, Laravel Valet, Docker, domaines .test, HTTPS local avec mkcert et checklist.

É

Équipe Locahl

7 min de lecture
fichier hostsmacOStutoriel

Modifier le fichier hosts sur Mac (2026)

Comment éditer /etc/hosts sur macOS sans erreur ? Comparatif Terminal (sudo nano) vs interface graphique. Résolvez permissions denied et cache DNS en 2 minutes.

É

Équipe Locahl