Firefox meldet nach dem Ändern des Websitezertifikats SEC_ERROR_CA_CERT_INVALID

1125
user149408

Ich habe einen Server in meinem internen Netzwerk. Für die SSL-Unterstützung habe ich eine interne Zertifizierungsstelle (mit OpenSSL) eingerichtet und ein Zertifikat für den Server ausgestellt. Die Zertifikatskette lautet wie folgt:

Example Root CA V1 +-- server.example.com 

Ich habe das Serverzertifikat auf dem Server installiert und das Stammzertifikat in Firefox importiert. Das hat bisher funktioniert.

Da das Stammzertifikat bald abläuft, habe ich mich entschlossen, eine komplett neue Zertifizierungsstelle mit einer tieferen Hierarchie einzurichten:

Example Root CA V2 +-- Example Signing CA V2 +-- server.example.com 

Ich habe auch ein Benutzerzertifikat erstellt, das von der signierenden Zertifizierungsstelle signiert wurde.

Ich habe dann das Benutzerzertifikat in Firefox hinzugefügt. Die neue Stammzertifizierungsstelle wird unter Behörden angezeigt und das Zwischenzertifikat (Signierende Zertifizierungsstelle) wird unter Sonstige angezeigt. Für das Stammzertifikat habe ich in Edit Trust alle drei Häkchen gesetzt.

Als nächstes habe ich das Zertifikat auf dem Server aktualisiert. Wenn ich jetzt versuche, eine Verbindung zum Server herzustellen, beschwert sich Firefox, dass die Verbindung nicht sicher ist:

server.example.com uses an invalid security certificate. The certificate is not trusted because it was issued by an invalid CA certificate. Error code: SEC_ERROR_CA_CERT_INVALID 

Wenn Sie auf den Fehlercode klicken, erhalten Sie:

https://server.example.com/  Issuer certificate is invalid.  HTTP Strict Transport Security: true HTTP Public Key Pinning: false  Certificate chain:  

gefolgt vom Serverzertifikat, dem intermediären CA-Zertifikat und dem Root-CA-Zertifikat.

Der Server führt ownCloud und Webmin aus. Bisher habe ich nur das Webmin-Zertifikat ausgetauscht. Firefox ist Version 50.1.0.

Was ist hier falsch?

0

1 Antwort auf die Frage

0
user149408

Ich habe es gelöst. Anscheinend SEC_ERROR_CA_CERT_INVALIDist ein Hinweis darauf, dass eines der Zertifikate in der Kette für den Zweck, für den es verwendet wird, nicht genehmigt / vertrauenswürdig ist.

Bei der Prüfung meiner Zertifikate stellte ich fest, dass mein CA-Zwischenzertifikat gemäß den Erweiterungen x509_v3 kein CA-Zertifikat war. Ich habe das Zwischenzertifikat mit den folgenden Einstellungen regeneriert:

X509v3 extensions: X509v3 Extended Key Usage: critical TLS Web Server Authentication, TLS Web Client Authentication X509v3 Basic Constraints:  CA:TRUE X509v3 Key Usage:  Digital Signature, Non Repudiation, Key Encipherment, Data Encipherment, Key Agreement, Certificate Sign, CRL Sign 

Dann habe ich die Server-Zertifizierungsanfrage erneut mit dem guten Zwischenzertifikat signiert und das Zwischenzertifikat in Firefox importiert. Nun zeigt das Zwischenzertifikat unter Behörden, nicht unter Andere.

Die einzige Herausforderung bestand darin, das Zertifikat in Webmin zu ersetzen, da ich mich effektiv von der Web-Benutzeroberfläche ausgeschlossen habe.

  • SSH in den Server
  • sudo vi /etc/webmin/miniserv.conf
  • Wechseln Sie ssl=1zu ssl=0und speichern Sie
  • sudo /etc/init.d/webmin restart
  • Melden Sie sich über reines HTTP bei Webmin an, ersetzen Sie das Zertifikat durch das gute, und melden Sie sich dann erneut ab.
  • sudo vi /etc/webmin/miniserv.conf
  • Wechseln Sie ssl=0zurück zu ssl=1und speichern Sie
  • sudo /etc/init.d/webmin restart

Als ich versuchte, mich über HTTPS mit meinem Server zu verbinden, funktionierte es.

Lektion gelernt: Beim Signieren einer Zertifikatsanforderung mit OpenSSL gibt es KEINE Überprüfung, um sicherzustellen, dass das Signaturzertifikat tatsächlich ein CA-Zertifikat ist. Alles scheint gut zu funktionieren, und Sie erhalten erst dann einen Fehler oder einen anderen Hinweis darauf, dass etwas nicht stimmt, bevor Sie versuchen, eine Verbindung zum Server herzustellen.