Skip to main content

Eigene CA und lokales Zertifikat erstellen

Für Tests ist es sinnvoll, Serveranwendungen auch unter https zu testen. Um das auf dem Entwicklungsrechner zu tun, benötigt man ein lokales Zertifikat und möglichst auch eine eigene CA, damit das Zertifikat auch ohne die lästigen Warnungen akzeptiert wird.

Auf einem Mac oder jedem anderen System mit Homebrew kann das mit brew erledigt werden. Zuerst aktualisiert man brew:

brew update && brew upgrade

Danach installiert man das Tool mkcert:

brew install mkcert

Damit mkcert das neu erstellte Zertifikat bzw. die CA in Firefox installieren kann, benötigt mkcert noch das Tool certutil aus dem Cask nss. Wird also auch mit Firefox getestet, ist nss noch zu installieren:

brew install nss

 Nun kann eine CA und ein Zertifikat für localhost erstellt werden:

mkcert -install
mkcert localhost 127.0.0.1 ::1

Der Befehl mkcert -install kann übrigens beliebig oft wiederholt werden.

Um die erzeugten <name>.pem- und <name-key>.pem Dateien in <name>.crt und <name>.key Dateien umzuwandeln, wird openssl genutzt.

openssl x509 -in localhost.pem -out localhost.crt
openssl pkey -in localhost-key.pem -out localhost.key

Einsatz z. B. in einer Go-Anwendung mit dem Echo Framework:

func main() {
	e := echo.New()
	// add middleware and routes
	// ...

	sc := echo.StartConfig{Address: ":1323"}
	if err := sc.StartTLS(context.Background(), e, "localhost.crt", "localhost.key"); err != nil {
		e.Logger.Error("failed to start server", "error", err)
	}
}