mkcert ist ein einfaches Tool zum Erstellen lokal vertrauenswürdiger Entwicklungszertifikate. Es ist keine Konfiguration erforderlich.
$ 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" ✅
Die Verwendung von Zertifikaten echter Zertifizierungsstellen (CAs) für die Entwicklung kann gefährlich oder unmöglich sein (für Hosts wie example.test
, localhost
oder 127.0.0.1
), aber selbstsignierte Zertifikate verursachen Vertrauensfehler. Die Verwaltung einer eigenen Zertifizierungsstelle ist die beste Lösung, erfordert jedoch in der Regel obskure Befehle, Fachwissen und manuelle Schritte.
mkcert erstellt und installiert automatisch eine lokale Zertifizierungsstelle im Stammspeicher des Systems und generiert lokal vertrauenswürdige Zertifikate. mkcert konfiguriert Server nicht automatisch für die Verwendung der Zertifikate, das liegt jedoch bei Ihnen.
Warnung : Die Datei
rootCA-key.pem
, die mkcert automatisch generiert, bietet die vollständige Möglichkeit, sichere Anfragen von Ihrem Computer abzufangen. Teilen Sie es nicht.
Verwenden Sie unter macOS Homebrew
brew install mkcert brew install nss # if you use Firefox
oder MacPorts.
sudo port selfupdate sudo port install mkcert sudo port install nss # if you use Firefox
Unter Linux installieren Sie zunächst certutil
.
sudo apt install libnss3-tools -or- sudo yum install nss-tools -or- sudo pacman -S nss -or- sudo zypper install mozilla-nss-tools
Anschließend können Sie die Installation mit Homebrew unter Linux durchführen
brew install mkcert
oder aus dem Quellcode erstellen (erfordert Go 1.13+)
git clone https://github.com/FiloSottile/mkcert && cd mkcert go build -ldflags "-X main.Version=$(git describe --tags)"
oder verwenden Sie die vorgefertigten Binärdateien.
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
Für Arch Linux-Benutzer ist mkcert
im offiziellen Arch Linux-Repository verfügbar.
sudo pacman -Syu mkcert
Verwenden Sie unter Windows Chocolatey
choco install mkcert
oder verwenden Sie Scoop
scoop bucket add extras scoop install mkcert
oder aus dem Quellcode erstellen (erfordert Go 1.10+) oder die vorgefertigten Binärdateien verwenden.
Wenn Sie auf Berechtigungsprobleme stoßen, versuchen Sie, mkcert
als Administrator auszuführen.
mkcert unterstützt die folgenden Root-Stores:
macOS-Systemspeicher
Windows-Systemspeicher
Linux-Varianten, die beides bieten
update-ca-trust
(Fedora, RHEL, CentOS) oder
update-ca-certificates
(Ubuntu, Debian, OpenSUSE, SLES) oder
trust
(Bogen)
Firefox (nur macOS und Linux)
Chrom und Chrom
Java (wenn JAVA_HOME
gesetzt ist)
Um die lokale Stammzertifizierungsstelle nur in einer Teilmenge davon zu installieren, können Sie die Umgebungsvariable TRUST_STORES
auf eine durch Kommas getrennte Liste setzen. Optionen sind: „system“, „java“ und „nss“ (einschließlich 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.
Hinweis: Sie müssen diese Optionen vor der Liste der Domänennamen platzieren.
mkcert -key-file key.pem -cert-file cert.pem example.com *.example.com
mkcert generiert automatisch ein S/MIME-Zertifikat, wenn einer der angegebenen Namen eine E-Mail-Adresse ist.
mkcert [email protected]
Damit die Zertifikate auf mobilen Geräten vertrauenswürdig sind, müssen Sie die Root-CA installieren. Es handelt sich um die Datei rootCA.pem
im Ordner, der von mkcert -CAROOT
gedruckt wird.
Unter iOS können Sie entweder AirDrop verwenden, die Zertifizierungsstelle per E-Mail an sich selbst senden oder sie von einem HTTP-Server bereitstellen. Nach dem Öffnen müssen Sie das Profil unter „Einstellungen“ > „Profil heruntergeladen“ installieren und dann die volle Vertrauenswürdigkeit aktivieren.
Für Android müssen Sie die Zertifizierungsstelle installieren und dann Benutzer-Roots im Entwicklungs-Build Ihrer App aktivieren. Sehen Sie sich diese StackOverflow-Antwort an.
Der Knoten verwendet nicht den Stammspeicher des Systems und akzeptiert daher mkcert-Zertifikate nicht automatisch. Stattdessen müssen Sie die Umgebungsvariable NODE_EXTRA_CA_CERTS
festlegen.
export NODE_EXTRA_CA_CERTS="$(mkcert -CAROOT)/rootCA.pem"
Das CA-Zertifikat und sein Schlüssel werden in einem Anwendungsdatenordner im Benutzer-Home gespeichert. Normalerweise müssen Sie sich darüber keine Sorgen machen, da die Installation automatisiert erfolgt, aber der Speicherort wird von mkcert -CAROOT
gedruckt.
Wenn Sie separate CAs verwalten möchten, können Sie die Umgebungsvariable $CAROOT
verwenden, um den Ordner festzulegen, in dem mkcert die lokalen CA-Dateien ablegt und nach ihnen sucht.
Für die Installation im Trust Store ist kein CA-Schlüssel erforderlich, sodass Sie das CA-Zertifikat exportieren und mkcert verwenden können, um es auf anderen Computern zu installieren.
Suchen Sie in mkcert -CAROOT
nach der Datei rootCA.pem
Kopieren Sie es auf einen anderen Computer
Setzen Sie $CAROOT
auf sein Verzeichnis
Führen Sie mkcert -install
aus
Denken Sie daran, dass mkcert für Entwicklungszwecke und nicht für die Produktion gedacht ist und daher nicht auf Endbenutzercomputern verwendet werden sollte und dass Sie rootCA-key.pem
nicht exportieren oder freigeben sollten.