Ich habe dieses Tutorial zum Erstellen signierter SSL-Zertifikate unter Windows für Entwicklungszwecke befolgt und es hat für eine meiner Domänen hervorragend funktioniert (ich verwende die Hosts-Datei, um DNS zu simulieren). Dann dachte ich mir, dass ich viele Subdomains habe, und das wäre eine Qual, ein Zertifikat für jede von ihnen zu erstellen. Daher habe ich versucht, ein Zertifikat mithilfe eines Platzhalters im Common
Feld zu erstellen, wie in einigen Antworten bei Serverfault vorgeschlagen. So was:
Common Name: *.myserver.net/CN=myserver.net
Nach dem Import dieses Zertifikats in die Trusted Root Certification Authority wird NET::ERR_CERT_COMMON_NAME_INVALID
in Chrome jedoch eine Fehlermeldung für die Hauptdomäne und alle ihre Subodmains angezeigt, z. B.: https://sub1.myserver.net
Und https://myserver.net
.
Dieser Server konnte nicht beweisen, dass es sich um myserver.net handelt. Das Sicherheitszertifikat stammt von * .myserver.net / CN = myserver.net.
Dies kann durch eine Fehlkonfiguration oder einen Angreifer verursacht werden, der Ihre Verbindung abfängt.
Stimmt im Feld "Allgemeiner Name" etwas nicht, das diesen Fehler verursacht?
quelle
Antworten:
Wie Rahul sagte, handelt es sich um einen häufigen Chrome- und einen OSX-Fehler. Ich hatte in der Vergangenheit ähnliche Probleme. Tatsächlich hatte ich es endlich satt, die 2 [ja, ich weiß, es sind nicht viele] zusätzlichen Klicks zu machen, wenn ich eine lokale Site auf Arbeit testete.
Für eine mögliche Problemumgehung [unter Windows] würde ich eines der vielen verfügbaren Dienstprogramme für selbstsignierende Zertifikate verwenden .
Empfohlene Schritte:
importieren Certificate Manager HINWEIS: In Schritt 3 wird das Problem behoben , das auftritt, sobald Google den Fehler behoben hat. In Anbetracht der veralteten Zeit gibt es in absehbarer Zeit keine ETA. **
So oft ich Chrome lieber verwende Entwicklung habe ich mich in letzter Zeit in der Firefox Developer Edition wiedergefunden . welches dieses Problem nicht hat.
Hoffe das hilft :)
quelle
Chrome 58 hat die Unterstützung für Zertifikate ohne alternative Betreffnamen eingestellt .
In Zukunft könnte dies ein weiterer Grund für diesen Fehler sein.
quelle
Eine Problemumgehung besteht darin, die Domänennamen hinzuzufügen, die Sie als "subjectAltName" (X509v3 Subject Alternative Name) verwenden. Dies können Sie tun, indem Sie Ihre OpenSSL-Konfiguration (
/etc/ssl/openssl.cnf
unter Linux) ändern und denv3_req
Abschnitt so ändern , dass er folgendermaßen aussieht:Vergessen Sie in diesem Fall nicht, den
-extensions v3_req
Schalter beim Generieren Ihres neuen Zertifikats zu verwenden. (Siehe auch Wie kann ich mit SubjectAltName mit OpenSSL ein selbstsigniertes Zertifikat erstellen? )quelle
subjectAltName = @alt_names
mein Problem total gelöst. Ich hatte zuvor die DNS-Identität an meine Domain gebunden, indem ich sie bereitgestellt hatteCN=*.example.com
. EinstellenDNS.1 = example.com
undDNS.2 = *.example.com
den Trick gemacht. Seltsame Sache (für mich) war, dass alles bis zum 17.03.2017 funktionierte und einen Tag später aufhörte (hatte eine große Menge von Windows-Udates ausgeführt). Unter Linux ist für mich nichts kaputt gegangen, dies war nur Chrome , Firefox unter Windows .subjectAltName
ab Chrome 58, das sich derzeit in der Beta befindet, veraltet . Das hat mich hart gebissen, weil ich nicht nur nichts davon gesehen hatte, sondern der Fehlername auch sehr irreführend ist (es ist nicht der gebräuchliche Name, der ungültig ist!). Ich war das Gegenteil von dir. Es passierte nur unter Linux für mich, also habe ich stundenlang versucht, meinen lokalen Zertifikatspeicher dort zu reparieren.58.0.3029.19 beta (64-bit)
es. Ich habe den Zertifikatsbaum mit den korrektensubjectAltName
-s neu generiert und jetzt funktioniert alles. Und ich stimme zu, die Fehlermeldung ist sehr irreführend, da sie nichtCommonName
ungültig ist. Wenn die Nachricht "Zertifikat fehlt ein richtigessubjectAltName
" lautete , wären alle viel glücklicher.openssl.conf
Datei erstellen :Führen Sie diesen Befehl aus:
Dateien ausgeben
app.crt
undapp.key
für mich arbeiten.quelle
DNS.1 = *.myserver.net
. Sollte seinDNS.2 = *.myserver.net
. Funktioniert gut für mich.Ihre Wildcard
*.example.com
ist nicht decken die Root - Domain ,example.com
sondern deckt alle Varianten auf einem Unter -Domäne wiewww.example.com
odertest.example.com
Die bevorzugte Methode besteht darin, alternative Betreffnamen wie in Fabians Antwort festzulegen. Beachten Sie jedoch, dass Chrome derzeit verlangt, dass der allgemeine Name zusätzlich als einer der alternativen Betreffnamen aufgeführt wird (wie in seiner Antwort korrekt dargestellt). Ich habe dieses Problem kürzlich entdeckt, weil ich den allgemeinen Namen
example.com
mit SANs hattewww.example.com
undtest.example.com
dieNET::ERR_CERT_COMMON_NAME_INVALID
Warnung von Chrome erhalten habe. Ich musste eine neue Zertifikatsignierungsanforderung mitexample.com
dem allgemeinen Namen und einem der SANs generieren . Dann vertraute Chrome dem Zertifikat voll und ganz. Vergessen Sie nicht, das Stammzertifikat als vertrauenswürdige Instanz zur Identifizierung von Websites in Chrome zu importieren.quelle
DNS.1 = example.com
als auchDNS.2 = *.example.com
unter[alt_names]
einzuschließenopenssl.cnf
.Ich denke, es könnte ein Fehler in Chrom sein. Vor langer Zeit gab es ein ähnliches Problem: Siehe dies.
Versuchen Sie es in einem anderen Browser. Ich denke, es sollte gut funktionieren.
quelle
Für alle, die darauf stoßen und das Risiko eingehen möchten, es zu testen, gibt es eine Lösung: Wechseln Sie in Chrome in den Inkognito-Modus, und öffnen Sie "Erweitert" und klicken Sie auf "Weiter zu some.url".
Dies kann hilfreich sein, wenn Sie eine Website überprüfen müssen, die Sie selbst pflegen und nur als Entwickler testen (und wenn Sie noch kein ordnungsgemäßes Entwicklungszertifikat konfiguriert haben).
Dies ist natürlich NICHT FÜR MENSCHEN, die eine Website in der Produktion verwenden, bei der dieser Fehler darauf hinweist, dass ein Problem mit der Website-Sicherheit vorliegt.
quelle
Wenn Sie diesen Fehler satt haben. Sie können dafür sorgen, dass Chrome nicht so funktioniert. Ich sage nicht, dass es der beste Weg ist, nur zu sagen, dass es ein Weg ist.
Diese Informationen wurden auf der Symantec-Support-Seite gefunden: https://support.symantec.com/en_US/article.TECH240507.html
quelle
Die Antworten haben bei mir (Chrome oder Firefox) beim Erstellen von PWA für die lokale Entwicklung und das Testen nicht funktioniert. NICHT FÜR DIE PRODUKTION VERWENDEN! Ich konnte Folgendes verwenden:
<your ip here, e.g. 192.168.1.12>
const https = require('https'); const fs = require('fs');
an die Spitze der server.js Dateireturn app.listen(PORT, () => { ... });
am Ende der Datei server.js.https.createServer({ key: fs.readFileSync('./cert.key','utf8'), cert: fs.readFileSync('./cert.crt','utf8'), requestCert: false, rejectUnauthorized: false }, app).listen(PORT)
Ich habe keine Fehler mehr in Chrome oder Firefox
quelle