"Privater Schlüssel fehlt oder ist ungültig, wenn ein Zertifikat importiert wird" in Google Chrome

25

Ich möchte meine Web-App auf https localhost testen. Leider scheint es unmöglich zu sein, die Zertifikatswarnung von Chrome zu entfernen. Zuerst habe ich das Zertifikat folgendermaßen generiert:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/localhost-selfsigned.key -out /etc/ssl/certs/localhost-selfsigned.crt

Dann wollte ich es zu Chrome hinzufügen, Einstellungen> Erweitert> Zertifikate verwalten -> Importieren. Ich versuche die zuvor generierte .crt-Datei zu importieren und erhalte nur Folgendes:

Zertifikatimportfehler: Der private Schlüssel für dieses Client-Zertifikat fehlt oder ist ungültig.

Ich habe gegoogelt, aber nichts hilfreiches gefunden.

Ich habe auch versucht, das Flag allow-insecure-localhost zu aktivieren und Chrome mit zu öffnen, --ignore-certificate-errorsaber es zeigt immer noch die Warnung und das beschädigte https an

Gibt es andere Möglichkeiten oder mache ich mit dem Zertifikat etwas falsch?

Maciej Krawczyk
quelle
Haben Sie die /etc/ssl/private/localhost-selfsigned.keyDatei auch importiert ? Das ist der private Schlüssel.
Zoredache
1
Der Browser benötigt den öffentlichen Schlüssel, nicht den privaten Schlüssel.
Arjan
2
Normalerweise erstellen Sie ein selbstsigniertes Serverzertifikat und installieren es in der HTTP-Serversoftware, von der aus Sie Ihre Webanwendung bereitstellen. In Webbrowsern installierte clientseitige (Benutzer-) Zertifikate können verwendet werden, um Benutzer zu authentifizieren, wenn sie sich bei Webanwendungen anmelden. Dies ist jedoch ziemlich selten. Die meisten Sites / Apps verwenden eine Benutzer- / Kennwortauthentifizierung, keine Benutzer- / Clientzertifikate.
Spiff
Können Sie mit diesem Zertifikat Inhalte über https bereitstellen und sehen, wie sie beim Exportieren aus dem Browser aussehen? sollte der gleiche Inhalt sein.
Cghislai
1
Vielleicht importieren Sie auch von der falschen Registerkarte. versuchen, Schalter auf die Registerkarte Server , bevor Sie den Import Button
cghislai

Antworten:

29

Ich denke, Sie versuchen möglicherweise, es dem falschen Zertifikatspeicher hinzuzufügen. Wenn Sie versuchen, es unter "Ihre Zertifikate" hinzuzufügen, werden Sie eine schlechte Zeit haben. Diese Registerkarte dient zum Hinzufügen von Identitätszertifikaten. Was Ihr Browser dem Server anbietet, um die Identität des Browsers festzustellen.

Ich denke, Sie möchten, basierend auf Ihrer Beschreibung, dass Ihr Browser dem selbstsignierten Zertifikat vertraut, das sich auf Ihrem Server befindet. Wenn dies der Fall ist, müssen Sie es auf der Registerkarte "Berechtigungen" hinzufügen.

Erik
quelle
1
Hat bei mir nicht funktioniert
Alexandre Bourlier
3
Dies funktioniert ab Chrome v64. Sie importieren die .crt-Datei unter der Registerkarte "Berechtigungen", wie @Erik hervorhob. Hinweis: FireFox bereitet Ihnen keine Probleme
lasec0203
2
Die Registerkarte "Berechtigungen" gilt für CA-Zertifikate. Nicht-CA-Zertifikate sollten sich auf der Registerkarte Server befinden. Beispielsweise können Sie dort in Chromium 65.0.3325.162 kein Nicht-CA-Zertifikat manuell hinzufügen.
X-Yuri
1
Das Importieren über den "Authorities" -Reiter löste mein Problem.
K-Gun
FireFox gab mir das gleiche Treiben und nichts funktioniert, aber okay.
Zap