Vor kurzem hat Chrome die Arbeit mit meinen selbstsignierten SSL-Zertifikaten eingestellt und hält sie für unsicher. Wenn ich mir das cert im DevTools | Security
-Tab anschaue, kann ich sehen, dass es sagt
Name des Antragstellernativen fehlt Das Zertifikat für diese Site hat enthalten keine Erweiterung für einen alternativen Antragstellernamen, der eine Domäne enthält Name oder IP-Adresse.
Zertifikatfehler Es gibt Probleme mit der Zertifikatkette der Site (net :: ERR_CERT_COMMON_NAME_INVALID).
Wie kann ich das beheben?
Um dies zu beheben, müssen Sie openssl
beim Erstellen des Zertifikats grundsätzlich einen zusätzlichen Parameter angeben
-sha256 -extfile v3.ext
dabei ist v3.ext
eine Datei wie diese, wobei %%DOMAIN%%
durch denselben Namen ersetzt wird, den Sie als Common Name
verwenden. Mehr Infos hier und hier . Beachten Sie, dass Sie normalerweise Common Name
und %%DOMAIN%%
auf die Domäne setzen, für die Sie ein Zertifikat erstellen möchten. Wenn es also www.mysupersite.com
wäre, würden Sie das für beide verwenden.
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = %%DOMAIN%%
Ein weiterer Hinweis: Wenn Sie lediglich versuchen, Chrome beim Anzeigen eines selbstsignierten Zertifikats nicht zu werfen, können Sie Chrome anweisen, alle SSL-Fehler für ALLE Websites zu ignorieren, indem Sie es starten mit einer speziellen Befehlszeilenoption, wie hier auf SuperUser beschrieben
Ich habe ein bash-Skript erstellt, um das Erstellen selbstsignierter TLS-Zertifikate, die in Chrome gültig sind, zu vereinfachen.
Stellen Sie nach der Installation der Zertifikate sicher, dass Sie chrome (chrome://restart
) neu starten. Getestet an Chrome 65.x
und es funktioniert immer noch.
Ein weiteres (viel robusteres) Tool, das es sich lohnt, auszuprobieren, ist das cfssl
-Toolkit von CloudFlare:
Folgende Lösung funktionierte für mich auf Chrom 65 ( ref ) -
Erstellen Sie eine OpenSSL-Konfigurationsdatei (Beispiel: req.cnf)
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
Prompt = no
[req_distinguished_name]
C = US
ST = VA
L = SomeCity
O = MyCompany
OU = MyDivision
CN = www.company.com
[v3_req]
keyUsage = critical, digitalSignature, keyAgreement
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = www.company.com
DNS.2 = company.com
DNS.3 = company.net
Erstellen Sie das Zertifikat, das auf diese Konfigurationsdatei verweist
openssl req -x509 -nodes -days 730 -newkey rsa:2048 \
-keyout cert.key -out cert.pem -config req.cnf -sha256
Ich benutze einfach den -subj
-Parameter und füge die IP-Adresse der Maschine hinzu. So gelöst mit nur einem Befehl.
Sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -sha256 -subj '/CN=my-domain.com/subjectAltName=DNS.1=192.168.0.222/' -keyout my-domain.key -out my-domain.crt
Sie können andere Attribute wie C, ST, L, O, OU, emailAddress hinzufügen, um Zertifikate zu erstellen, ohne dass Sie dazu aufgefordert werden.
Erstellen Sie eine Kopie Ihrer OpenSSL-Konfiguration in Ihrem Home-Verzeichnis:
cp /System/Library/OpenSSL/openssl.cnf ~/openssl-temp.cnf
oder unter Linux:
cp /etc/ssl/openssl.cnf ~/openssl-temp.cnf
Fügen Sie unter openssl-temp.cnf
den alternativen Betreffnamen zu [v3_ca]
hinzu:
[ v3_ca ]
subjectAltName = DNS:localhost
Ersetzen Sie localhost
durch die Domäne, für die Sie das Zertifikat generieren möchten.
Zertifikat generieren:
Sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-config ~/openssl-temp.cnf
-keyout /path/to/your.key -out /path/to/your.crt
Sie können dann openssl-temp.cnf
löschen.
auf MAC Ab Chrome Version 67.0.3396.99 funktionierte mein selbstsigniertes Zertifikat nicht mehr.
regeneration mit allem, was hier geschrieben wurde, funktionierte nicht.
UPDATE
hatte eine Chance zu bestätigen, dass mein Ansatz heute funktioniert :). Wenn dies nicht funktioniert, stellen Sie sicher, dass Sie diesen Ansatz verwenden
v3.ext
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = <specify-the-same-common-name-that-you-used-while-generating-csr-in-the-last-step>
$
kopiert von hier https://ksearch.wordpress.com/2017/08/22/generate-and-import-a-self-signed-ssl-certificate-on-mac-osx-sierra/
END UPDATE
endlich konnte Green Secure nur dann angezeigt werden, wenn entfernt mein Schlüssel von System und hinzugefügt an local Schlüsselbund gesetzt wurde. (Wenn es einen gibt - lassen Sie ihn zuerst fallen). Ich bin mir nicht sicher, ob es wichtig ist, aber in meinem Fall habe ich das Zertifikat über Chrome heruntergeladen und überprüft, dass das Erstellungsdatum heute liegt - es ist also das, das ich gerade erstellt habe.
ich hoffe, es ist hilfreich für jemanden, der wie ein Tag damit verbringt.
Chrome niemals aktualisieren!
Ich konnte (net :: ERR_CERT_AUTHORITY_INVALID) loswerden, indem ich den DNS.1-Wert der v3.ext-Datei änderte
[alt_names] DNS.1 = Domänenname.com
Ändern Sie Domainname.com mit Ihrer eigenen Domain.