Selbst signierte SSL-Zertifikate in Chrome 58

Seit Let's Encrypt gehören verschlüsselte Webseiten heutzutage zum Standard. Auch bei der lokalen Entwicklung sind SSL-Zertifikate kaum mehr wegzudenken (so setzt navigator.geolocation zum Beispiel verpflichtend eine SSL-Verschlüsselung auch lokal voraus). Seit Version 58 von Chrome wurde die Unterstützung für CN (Common Name) aufgegeben und stattdessen SAN (Subject Alternative Name) verpflichtend vorausgesetzt. Dadurch akzeptiert Chrome alle auf herkömmlichem Wege erstellte SSL-Zertfikate plötzlich nicht mehr.


Selbst signierte SSL-Zertifikate in Chrome 58

Zwar kann man Online-Tools wie ZeroSSL zur Zertifikatserstellung nutzen oder Chrome mit Startparametern wie --ignore-certificate-errors oder dem Flag chrome://flags/#allow-insecure-localhost dazu bringen, auch ohne gültige Zertifikate zu arbeiten; Wir wollen jedoch mit Hilfe von OpenSSL lokal selbst signierte Zertifikate erstellen, die SAN enthalten und von Chrome vollständig akzeptiert werden. Dieser Einzeiler erledigt dazu alles Nötige (lediglich www.tld.local muss gegen die gewünschte Domain ausgetauscht werden):

61b7be9883ad31712c52a59252a4c9c4

Da OpenSSL leider keine direkten Argumente besitzt, SAN festzulegen, wird zunächst eine Config-Datei angelegt, OpenSSL damit aufgerufen und die Datei anschließend gelöscht. Windows-Benutzer können diesen Befehl entweder mit Hilfe von Cygwin (und bash -c "...") oder mit dem neuen WSL ebenfalls einfach ausführen. Die beiden entstandenen Dateien www.tld.local.key sowie www.tld.local.cert können dann z.B. in MAMP angewählt werden:

Selbst signierte SSL-Zertifikate in Chrome 58

Windows-Nutzer laden anschließend noch unter "Benutzerzertifikate verwalten" (certmgr) in die "Vertrauenswürdige Stammzertifizierungsstellen":

Selbst signierte SSL-Zertifikate in Chrome 58

Schließlich startet man Chrome noch neu (chrome://restart) und erfreut sich des grünen Schlosses:

Selbst signierte SSL-Zertifikate in Chrome 58

Zurück