Heutzutage wird die Verwendung von HTTPS für alle Websites und Webanwendungen obligatorisch. Im Entwicklungsprozess gibt es jedoch ein Problem mit korrekten Tests. Natürlich stellen Let's Encrypt und andere Zertifizierungsstellen keine Zertifikate für localhost aus.
Traditionell gibt es zwei Lösungen.
- Selbstsignierte Zertifikate, die über openssl oder andere generiert wurden. Hier ist der einfachste Weg, einen privaten Schlüssel und ein selbstsigniertes Zertifikat für localhost zu generieren:
 
 openssl req -x509 -out localhost.crt -keyout localhost.key \ -newkey rsa:2048 -nodes -sha256 \ -subj '/CN=localhost' -extensions EXT -config <( \ printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")
 
 Ein solches Zertifikat führt jedoch zu Vertrauensfehlern in Browsern, da im vertrauenswürdigen Speicher keine entsprechende Zertifizierungsstelle vorhanden ist.
- Der Trick besteht darin, eine neue Domain wie localhost.example.com zu registrieren, die lokal in 127.0.0.1 (in / etc / hosts) aufgelöst wird, um das übliche Zertifikat für diese Domain zu erhalten. Ein solcher Betrug ist jedoch aus Sicherheitsgründen fraglich - zumindest für öffentliche Dienste wird eine solche Lösung aufgrund eines möglichen MiTM-Angriffs mit einer Änderung einer feindlichen IP-Adresse nicht empfohlen . Wenn wir uns nur auf den lokalen Computer beschränken, ist dies möglicherweise eine geeignete Option, obwohl auch einige Zweifel bestehen. Darüber hinaus kann ein solches Zertifikat widerrufen werden. In jedem Fall gibt es eine einfachere und sicherere Option (siehe unten).
Dies ist 
mkcert , ein einfaches Dienstprogramm zum Generieren lokal vertrauenswürdiger Zertifikate mit 
eigener Zertifizierungsstelle . Es funktioniert unter allen Betriebssystemen und erfordert keine Konfiguration.
Linux-Version
Zuerst müssen Sie 
certutil installieren.
 sudo apt install libnss3-tools -- sudo yum install nss-tools -- sudo pacman -S nss 
dann
 brew install mkcert 
oder aus der Quelle kompilieren:
 go get -u github.com/FiloSottile/mkcert $(go env GOPATH)/bin/mkcert 
MacOS-Version
 brew install mkcert brew install nss  
Windows-Version
Unter Windows können Sie die 
gesammelten Binärdateien herunterladen oder einen der Paketmanager verwenden: Chocolatey oder Scoop.
 choco install mkcert -- scoop install mkcert 
Das Vorhandensein einer lokalen Zertifizierungsstelle ist der wichtigste grundlegende Unterschied zwischen mkcert- und openssl-Zertifikaten und selbstsignierten Zertifikaten, da beim Ausführen einer solchen Zertifizierungsstelle lokal keine Vertrauensfehler auftreten.
Grundsätzlich können Sie Ihre eigene Zertifizierungsstelle auf andere Weise starten und konfigurieren. Dies erfordert jedoch nicht triviale Kenntnisse und Fähigkeiten. Hier wird alles von selbst erledigt, ohne zusätzliche Schlüssel und Einstellungen. Installieren Sie einfach das Programm - und es erstellt automatisch eine lokale Zertifizierungsstelle und gibt es in den vertrauenswürdigen Speicher des Systems und in den vertrauenswürdigen Firefox-Speicher ein.
 $ mkcert -install Created a new local CA at "/Users/filippo/Library/Application Support/mkcert" The local CA is now installed in the system trust store! ️ The local CA is now installed in the Firefox trust store (requires restart)!