it-swarm.com.de

Ungültiges selbstsigniertes SSL-Zertifikat - "Name des alternativen Antragstellers fehlt"

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?

68
Brad Parks

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.

v3.ext

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = %%DOMAIN%%

Hinweis: Skripts, die sich mit diesem Problem befassen und vollständig vertrauenswürdige SSL-Zertifikate für die Verwendung in Chrome, Safari und von Java-Clients erstellen, finden Sie hier

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

78
Brad Parks

Ich habe ein bash-Skript erstellt, um das Erstellen selbstsignierter TLS-Zertifikate, die in Chrome gültig sind, zu vereinfachen. 

selbstsigniertes-tls-bash-Skript

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:

cfssl

14
Logan

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
13
Anshul

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.

4
Ludwig
  • 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.

0

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!

0
user2932688

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.

0
Jun See