Wiki "Generierung eines eigenen SSL-Zertifikats": Warum MD5 als Signaturalgorithmus?!

Great Gatsby

Benutzer
Mitglied seit
09. Jan 2010
Beiträge
92
Punkte für Reaktionen
0
Punkte
0
Wiki "Generierung eines eigenen SSL-Zertifikats": Warum MD5 als Signaturalgorithmus?!

Hallo,

ich habe mir nach dem Artikel Generierung eines eigenen SSL-Zertifikats des hiesigen Wikis schon vor längerer Zeit auf einer DS-106j mit DSM 3.2-1944 (DS-108j-Firmware) ein 2048-bit SSL-Zertifikat generiert. Das benutzte openssl ist laut "which openssl" das der Optware-Installation, also /opt/bin/openssl, version 0.9.7m vom 23. Februar 2007.

Die resultierende Datei ca.crt habe ich als "Certificate Authority", also als eigene Zertifizierungsstelle (nicht als ausnahmsweise zu akzeptierendes Zertifikat einer unbekannten Zertifizierungsstelle, wie es hier offenbar sonst viele machen), in Firefox eingebunden.

Zu meiner Verwunderung erkennt Firefox dieses Zertifikat seit dem zum jetzigen Zeitpunkt aktuellen Firefox 16 als unsicher, die Fehlermeldung ist

Rich (BBCode):
(Fehlercode: sec_error_cert_signature_algorithm_disabled)

Zu meiner Überraschung wird innerhalb der Zertifikatsdetails der Firefox-Zertifikatsansicht als Zertifikatssignierungsalgorithmus tatsächlich "PKCS #1 MD5 mit RSA-Verschlüsselung" angezeigt. MD5 gilt in dieser Konstellation ja als komprimitiert und sollte nicht mehr verwendet werden (vergleiche unter anderem Firefox Bugs 650355, 758314).

Einzige Abhilfe, um die eigene Certificate Authority von Firefox wieder als valide erkennen zu lassen, ist, mit

Rich (BBCode):
about:config

die interne Firefox-Konfiguration aufzurufen und den Wert

Rich (BBCode):
security.enable_md5_signatures

manuell von "false" auf "true" zu stellen.

Das aber kann keine langfristige Lösung sein, denn dieser "Workaround" führt ja dazu, dass mit MD5 unsicher signierte Zertifikate generell akzeptiert werden (also nicht nur meines, sondern ausnahmslos alle).

Deshalb meine Fragen:

  • Warum ist mir beim Vorgehen nach dem Wiki-Artikel von openssl ein mit MD5 signiertes Zertifikat generiert worden? Sollte dafür heute nicht vielmehr SHAx benutzt werden?
  • Liegt das an der möglicherweise viel zu alten openssl-Version, die man da mit der IPKG-Installation erhält?
  • Und könntet Ihr vielleicht einmal nachsehen, was bei Euren nach dieser Anleitung selbstgenerierten Zertifikaten als "Zertifikatssignierungsalgorithmus" von Firefox angegeben wird?

Vielen Dank! :)
 
Zuletzt bearbeitet:

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
6.355
Punkte für Reaktionen
593
Punkte
228
Hallo,

ich bin zwar nicht sooo der SSL-Guru aber ich habe letztens im Wiki die Unterstützung für Multi-DNS-Namen ergänzt. Der Artikel selbst ist ja schon etwas älter.

Beim IE wird beim gem. Wiki erzeugten Zertifikat folgendes angezeigt:
SignaturAlgorithmus = sh1RSA
FingerabduckAlgorithmus = sh1

Firefox (16.0.1) zeigt mir "PKCS #1 SHA-1 mit RSA-Verschlüsselung" als Zertifikatssignierungsalgorithmus an.

Für die Erzeugung hab ich die im aktuellen DSM (s. Signatur) eingebaute openssl-Version (0.9.8v) verwendet und nicht die von IPKG (0.9.8v-2).

Gruß Benares
 
Zuletzt bearbeitet:

Great Gatsby

Benutzer
Mitglied seit
09. Jan 2010
Beiträge
92
Punkte für Reaktionen
0
Punkte
0
Hallo Benares,

vielen Dank für die Informationen und das Nachsehen im IE! :)

Dass die jeweiligen Algorithmen Deines Zertifikats SHA-1 und eben nicht MD5 sind, interpretiere ich vorläufig als starkes Indiz dafür, dass der Wiki-Artikel vollkommen in Ordnung ist und das Problem sich auf meine DS-106j beschränkt (wahrscheinlich mit dem Alter der openssl-Version zusammenhängt). Ich habe gerade noch einmal sicherheitshalber mit "IPKG upgrade" alle neueren Pakete geholt. Den einzigen Versionssprung gab es tatsächlich bei openssl, aber er war von Version 0.9.7m-5 zu Version 0.9.7m-6 und damit eher marginal.

Ich werde in den kommenden Tagen die Zertifikatsgenerierung einmal auf einem Raspberry Pi mit openssl Version 1.0.1c vom 10. Mai 2012 wiederholen und sehen, was dabei herauskommt.

Bis dahin vielleicht noch eine Frage zu Deiner Ergänzung beim Thema "Multi-DNS-Namen" (Danke auch hierfür übrigens!): Lassen sich in die Datei extfile.cnf auch lokale IPv4-Adressen mit aufnehmen, um etwa beim Zugriff auf das DSM-Webinterface im eigenen LAN unter der lokalen IP(v4)-Adresse nicht extra Zertifikatsausnahmen in den Browsern anlegen zu müssen? Oder anhand eines Beispiels: Ginge Folgendes?

Rich (BBCode):
subjectAltName=DNS:192.168.1.212,DNS:DS212,DNS:DS212.meinefirma.de,DNS:myhost.dydns.org,DNS:myhost.no-ip.com

Nochmals vielen Dank! :)
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
6.355
Punkte für Reaktionen
593
Punkte
228
Laut Signatur hast du doch auch eine DS-411j mit neuerer Firmware. Warum probierst du es nicht damit?

Zum Thema "Multi-DNS-Namen":
Genau dafür war es gedacht. Die Original-Anleitung unterstützte nur einen Namen, typischerweise den DDNS-Namen. Mit der Anpassung kann man zusätzlich auch mehrere weitere Namen (z.B. auch lokale Namen) quasi als Aliase hinzufügen. Ob allerdings auch IP-Adressen gehen, kann ich nicht sagen, aber warum nicht (müsste man mal probieren).

Edit:
Hab mal gegoogelt: IP-Adressen müssten auch gehen, allerdings mit "IP:" statt "DNS:" davor. Hab's mal im Wiki ergänzt.

Gruß Benares
 
Zuletzt bearbeitet:

jahlives

Moderator
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
3
Punkte
0

Great Gatsby

Benutzer
Mitglied seit
09. Jan 2010
Beiträge
92
Punkte für Reaktionen
0
Punkte
0
Laut Signatur hast du doch auch eine DS-411j mit neuerer Firmware. Warum probierst du es nicht damit?

Das habe ich gerade, und es funktioniert auch - allerdings scheitert dann der Import des CA-Zertifikats (also des Stammzertifikats meiner eigenen, neu generierten "Certificate Authority") in Firefox mit der Fehlermeldung "Dies ist kein Zertifikat für eine Zertifizierungsstelle und kann deshalb nicht in die Liste der Zertifizierungsstellen importiert werden."

Kann es sein, dass die nach der Anleitung generierten Stammzertifikate nicht mit Firefox kompatibel sind bzw. könnte das hier - ein fehlender Wert "Subject Type=CA" im Basic Constraints-Feld des Stammzertifikats - das Problem sein?

Edit:
Hab mal gegoogelt: IP-Adressen müssten auch gehen, allerdings mit "IP:" statt "DNS:" davor. Hab's mal im Wiki ergänzt.

Super, vielen Dank! - Lassen sich mit "IP:" dann auch Wildcards einsetzen, um ganze IP-Ranges zu definieren? Also z.B.

Rich (BBCode):
IP:192.168.0.*

?
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
6.355
Punkte für Reaktionen
593
Punkte
228
Weiss ich beides nicht. Bei mir funktionierts auch mit Firefox. Probiers aus.

Gruß Benares
 

Great Gatsby

Benutzer
Mitglied seit
09. Jan 2010
Beiträge
92
Punkte für Reaktionen
0
Punkte
0
Weiss ich beides nicht. Bei mir funktionierts auch mit Firefox. Probiers aus.

Hallo, ich bin dabei. :) - Zur Dokumentation und in der Hoffnung, dass es auch für andere hier einmal nützlich sein kann, zunächst die Antwort auf meine zweite Frage oben:

Platzhalter ("Wildcards", "*" …) können in der Datei extfile.cnf nur innerhalb von DNS-Namen verwendet werden, nicht aber innerhalb von IPv4-Adressen. Mit anderen Worten:

DNS:*.meinedomain.de wird von openssl akzeptiert, IP:192.168.0.* nicht.

Wer ein Zertifikat mit mehreren IPv4-Adressen des eigenen LANs benutzen will, ist aber natürlich nicht gehindert, diese einzeln hintereinander anzugeben.

Was meine erste Frage und die Probleme mit dem Stammzertifikateimport in Firefox angeht, glaube ich derzeit, tatsächlich einen kleinen Fehler im Wiki-Artikel gefunden zu haben, überprüfe das aber gerade noch. Später mehr.
 

Great Gatsby

Benutzer
Mitglied seit
09. Jan 2010
Beiträge
92
Punkte für Reaktionen
0
Punkte
0
Was meine erste Frage und die Probleme mit dem Stammzertifikateimport in Firefox angeht, glaube ich derzeit, tatsächlich einen kleinen Fehler im Wiki-Artikel gefunden zu haben, überprüfe das aber gerade noch. Später mehr.

Hallo,

nach einigem Testen möchte ich mein Ergebnis gern einmal zur Diskussion stellen:

Die aktuelle Version des Wiki-Artikels generiert reproduzierbar immer dann ein für Firefox invalides Stammzertifikat, wenn schon bei Schritt 3 der Generierung des Stammzertifikats der Parameter -extfile extfile.cnf benutzt wird. Wird dieser Parameter hingegen weggelassen, wird ein für Firefox valides Stammzertifikat erzeugt, das sich dann problemlos in die Firefox-Liste der Zertifizierungsstellen importieren lässt.

Beim späteren Generieren des Server-Zertifikats sorgt der Parameter -extfile ja dafür, dass das Server-Zertifikat auch für alle in der Datei extfile.cnf angegebenen DNS- und IPv4-Adressen gültig ist. Warum man diese Liste von DNS- und IPv4-Adressen aber schon in ein Stammzertifikat unterbringen will, erschließt sich mir nicht. Insofern glaube ich inzwischen tatsächlich, dass sich hier ein kleiner Fehler in den Wiki-Artikel eingeschlichen hat und das vorletzte -extfile extfile.cnf dieser Bearbeitung wieder entfernt werden müsste.
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
6.355
Punkte für Reaktionen
593
Punkte
228
Die Geschichte mir dem extfile im Wiki hab ich ja ergänzt, nachdem es bei mir mit der Methode sowohl beim IE als auch bei Firefox auf Anhieb geklappt hat.

Wenn du dir sicher bist, dass man das nur bei der Erstellung des Server-Zertifikats angeben darf, ändere es im Wiki entsprechend ab.

Gruß Benares
 
NAS-Central - Ihr Partner für NAS Lösungen
NAS-Central - The Home of NAS

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat