Files
wiki/Catalogue-Self-Hosted/apps/app-mkcert-web-ui.md
T
2026-06-09 18:40:21 +02:00

86 lines
4.5 KiB
Markdown

---
title: Mkcert Web UI
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, front-end, ssl, certificats, dev, mkcert]
confidence: medium
contested: false
sources: [https://selfh.st/apps/?q=mkcert-web-ui]
---
# Mkcert Web UI 🔐
> Interface web minimaliste pour générer et gérer des certificats SSL/TLS de développement via [mkcert](https://github.com/FiloSottile/mkcert).
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://github.com/tarampampam/mkcert-webui |
| **GitHub** | https://github.com/tarampampam/mkcert-webui |
| **License** | MIT |
| **Langage principal** | Go |
| **Étoiles GitHub** | 10 |
| **Dernière MAJ** | 2025 |
| **Catégorie** | [[cat-front-end]] |
## Description
Mkcert Web UI est une surcouche graphique pour [mkcert](https://github.com/FiloSottile/mkcert), l'outil en ligne de commande de Filippo Valsorda qui permet de créer une autorité de certification (CA) locale de confiance et de générer des certificats SSL valides pour le développement en `*.localhost` ou tout autre domaine. Au lieu d'utiliser la CLI `mkcert -key-file key.pem -cert-file cert.pem example.com`, on passe par une interface web simple.
L'outil est particulièrement utile dans les contextes suivants : équipes de développement qui veulent standardiser la génération de certificats, labs d'homelab où l'on crée régulièrement de nouveaux services HTTPS, ou encore environnements pédagogiques (formations, CTF). L'UI expose typiquement un formulaire pour saisir le(s) nom(s) de domaine, un bouton de génération, et un lien de téléchargement des fichiers `.pem` produits.
⚠️ **Projet jeune** (⭐10) avec un **bus factor limité** (1 à 2 mainteneurs). Surtout, ce type d'outil manipule des **clés privées** : il faut être extrêmement vigilant sur l'exposition réseau (toujours limiter à `127.0.0.1` ou un réseau privé) et ne jamais l'utiliser pour générer des certificats de production. Réservé à un usage de développement/local.
## Installation
### Via Docker (recommandé)
```yaml
services:
mkcert-webui:
image: ghcr.io/tarampampam/mkcert-webui:latest
container_name: mkcert-webui
restart: unless-stopped
ports:
- "127.0.0.1:8080:8080"
volumes:
- ./certs:/data/certs
- ./ca:/data/ca
environment:
LISTEN: :8080
DEFAULT_CERT_VALIDITY: 825
CAROOT: /data/ca
OUTPUT_DIR: /data/certs
```
### Installation manuelle
Cloner le dépôt, installer Go 1.21+, `go build` pour produire le binaire. Préparer un répertoire pour stocker la CA (`CAROOT`) et les certificats générés. Lancer le binaire avec les variables d'environnement appropriées. Pour le développement local, laisser le port sur `127.0.0.1` uniquement.
## Configuration
Variables d'environnement : `LISTEN` (défaut `:8080`, **à restreindre à localhost en dev**), `CAROOT` (dossier où mkcert stocke la CA racine, à sauvegarder précieusement), `OUTPUT_DIR` (dossier de sortie des certificats générés), `DEFAULT_CERT_VALIDITY` (durée de validité en jours, défaut 825 = 27 mois), `TRUST_ON_FIRST_RUN` (si `true`, fait confiance automatiquement aux certificats générés). Aucun fichier de config au-delà des variables d'environnement.
## Alternatives
### Open source
- [[app-caddymanager-frontend]] — UI pour Caddy (qui gère ses propres certs en dev)
- step-ca (CLI) — Autorité de certification locale, plus complète
- mkcert (CLI) — L'outil original en ligne de commande, sans UI
### Propriétaires
- Cloudflare Tunnel — Fournit des certs dev via tunnel, mais service externe
## Sécurité
- ⚠️ **Critique** : ne JAMAIS exposer cette UI sur internet ou un réseau non-fiable — elle génère des clés privées
- Toujours binder sur `127.0.0.1` ou un réseau privé isolé
- La CA locale (`CAROOT`) doit être sauvegardée de manière sécurisée : c'est elle qui signe tous les certificats de votre lab
- HTTPS n'est pas nécessaire (et c'est paradoxal) puisque l'outil génère les certs pour d'autres services
- Auditer régulièrement les certificats générés et révoquer ceux qui ne sont plus utilisés
- Usage strictement local/développement : pour la production, utiliser Let's Encrypt via [[app-caddy]] ou [[app-nginx]]
## Ressources
- Code source : https://github.com/tarampampam/mkcert-webui
- mkcert original : https://github.com/FiloSottile/mkcert
- Let's Encrypt : https://letsencrypt.org
- Documentation CA locale : https://github.com/FiloSottile/mkcert#installing-the-ca-trust-store
## Pages Liées
- [[cat-front-end]]
- [[recettes-docker-compose]]
- [[app-caddy]]
- [[app-nginx]]