'Keine Zertifizierungsstelle' beim Importieren eines selbstsignierten Zertifikats

5

Ich habe ein selbstsigniertes SSL-Zertifikat für die lokale Entwicklung erstellt. Beim Zugriff auf die Seite erhalte ich eine NET::ERR_CERT_AUTHORITY_INVALIDFehlermeldung. Aber wenn ich versuche, es in Chrome zu importieren ( chrome: // settings / certificates ), schlägt dies fehl:

Die Datei enthielt ein Zertifikat, das nicht importiert wurde:

  • mylocalwebapp.dev: Keine Zertifizierungsstelle

Dies ist der Befehl, den ich ausgeführt habe, um das Zertifikat zu erstellen:

openssl req -new -x509 -nodes \
 -extensions SAN \
 -reqexts SAN  \
 -days 365 \
 -newkey rsa:2048 \
 -keyout /etc/ssl/private/apache-selfsigned.key \
 -out /etc/ssl/certs/apache-selfsigned.crt \
 -config <(cat /etc/ssl/openssl.cnf <(printf '[SAN]\nsubjectAltName=DNS:mylocalwebapp.dev'))

Ich habe die SAN-Optionen hinzugefügt, da Chrome sie ab Version 58 ohne SAN nicht mehr akzeptiert . Es funktionierte auf Chrome 57 und es funktioniert immer noch auf Firefox.

Wie kann ich mein selbstsigniertes Zertifikat für Chrome 58 unter Ubuntu 17.04 verwenden?

Stephan Vierkant
quelle

Antworten:

8

Nur um sicherzustellen, dass wir unsere Grundlagen abdecken ... Haben Sie die hier beschriebenen Prozesse ausprobiert? https://stackoverflow.com/questions/7580508/getting-chrome-to-accept-self-signed-localhost-certificate

Früher hat das bei mir funktioniert, aber ab heute Morgen wird nach dem Update auf Chrome 58.0.3029.81 in der Konsole für ein selbstsigniertes Zertifikat, das unter Ubuntu 16.04 funktioniert hat, der folgende Fehler angezeigt:

Certificate Error
There are issues with the site's certificate chain (net::ERR_CERT_AUTHORITY_INVALID).

BEARBEITEN:

Ich hatte gerade Erfolg mit einer der Methoden aus dem Link, auf den ich oben verwiesen habe. Es geht komplett um Chrome, weil sich anscheinend etwas mit Chrome geändert hat und es nicht mehr richtig funktioniert.

So sichern Sie das Zertifikat mit dem OpenSSL-Client (wahrscheinlich nicht erforderlich, aber für den Fall, dass Sie sehr gründlich sein möchten):

$ echo QUIT | openssl s_client -connect $DOMAIN_TO_FETCH_FROM:443 | sed -ne '/BEGIN CERT/,/END CERT/p' > my-cert

So installieren Sie das gedumpte Zertifikat mit certutil. Wenn Sie Ihr Zertifikat nicht mit openssl gesichert haben, ersetzen Sie my-certes durch den entsprechenden Dateinamen:

$ certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n my-cert -i my-cert

Überprüfen Sie die Installation des Zertifikats mit certutil(wenn Sie dies wünschen ):

$ certutil -d sql:$HOME/.pki/nssdb -L

# Certificate Nickname                                         Trust Attributes
#                                                              SSL,S/MIME,JAR/XPI
#
# my-cert                                                      P,,  

Schließen Sie Chrome vollständig und starten Sie es neu. Vielleicht werden Sie Erfolg haben. Hat für mich sowohl an der 58 als auch an der 59-Beta gearbeitet.

tdg5
quelle
Das ist genau mein Problem. Es hat auf Chrome 57 funktioniert, aber ab 58 akzeptiert Chrome mein Zertifikat nicht. Da Sie das gleiche Problem haben, haben Sie auch keine Lösung?
Stephan Vierkant
Nein, noch nichts. Wenn ich in Firefox einen ähnlichen Weg beschreite, wird ein anderer Fehler angezeigt, der für mich vielleicht informativer ist: "MOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY". Vielleicht hat das etwas, aber ich weiß es nicht genau.
tdg5
Wenn Sie ausführen certutil -d sql:$HOME/.pki/nssdb -L, wird Ihr selbstsigniertes Zertifikat aufgelistet? Meins taucht mit "CT, C, C" auf, was meiner Meinung nach auch so aussieht, aber ich weiß es nicht genau.
tdg5
1
Kein Glück für mich ... Ich sehe sie aufgelistet, kann sie aber immer noch nicht zu Chrome hinzufügen
TheBakker
1
Ich habe gerade das Zertifikat exportiert, das dem EXPORT-Teil dieses Tutorials folgt : stackoverflow.com/a/15076602/3194525 und importiere es dann mitcertutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n my-cert -i my-cert
maaw