Migration Stammzertifizierungsstelle SHA1 zu SHA256 (Hashalgorithmus)

Ab dem 01.01.2016 wird Microsoft SSL Zertifikate mit SHA1 als Hashalgorithmus für ungültig erklären. Webserver oder Dienste die Zertifikate mit SHA1 nutzen, lösen also Zertifikatswarnungen im Browser bei den Benutzern aus. Daher sollte langsam aber sicher damit begonnen werden, SHA1 Zertifikate auszutauschen. Damit eine interne CA Zertifikate mit SHA256 (SHA2) ausstellen kann, muss die CA von SHA1 auf SHA2 umgestellt werden. Hier gibt es das entsprechende Howto:

Hier sieht man das der Hashalgorithmus der CA auf SHA1 steht. Die CA kann somit auch nur Zertifikate mit SHA1 ausstellen.

image

Als Beispiel hier ein IIS Webserver der sein Zertifikat von der CA mit SHA1 bezogen hat. Auch hier ist der Hashalgorithmus SHA1

image

Um die CA auf SHA256 (SHA2) umzustellen, muss der folgende Befehl auf der Kommandozeile ausgeführt werden:

certutil -setreg ca\csp\CNGHashAlgorithm SHA256

image

Wenn die Ausgabe wie oben ausschaut, muss die CA neugestartet werden, also einmal stoppen und wieder starten:

image

Ob SHA256 als Hashalgorithmus genutzt wird, lässt sich wieder in den Eigenschaften der CA prüfen

SHA256

Somit haben wir den Hashalgorithmus der CA auf SHA-256 geändert. Zuvor ausgestellte Zertifikate behalten ihre Gültigkeit, natürlich ändert sich nichts an den Zertifikaten, wie hier noch einmal im Beispiel des IIS

image

Erst neue oder erneuerte Zertifikate werden mit SHA-256 signiert. Über die Zertifikate-SnapIn in der MMC können Zertifikate erneuert werden:

image

Nachdem das Zertifikat erneuert wurde, wurde es mit SHA256 durch die CA signiert:

image

Und hier noch einmal das Beispiel mit dem IIS, alles gültig, mit SHA256:

image

Das Root-Zertifikat enthält natürlich auch noch SHA1 als Hashalgorithmus, denn es wurde bisher nicht erneuert. Es besteht allerdings nicht unbedingt die Notwendigkeit bis 2016 das Root-Zertifikat zu erneuern, den Zertifizierungsstellen Zertifikate behalten auch mit SHA1 ihre Gültigkeit.

image

Auch hier lässt sich das Zertifikat entsprechend erneuern (Achtung: der Assistent hält die CA an):

image

image

Nachdem das Zertifikat erneuert wurde enthält es ebenfalls SHA256:

image

Und hier noch einmal zum Vergleich das Beispiel IIS, alte und neue Zertifikate behalten Ihre Gültigkeit.

image

Natürlich müssen alte SHA1 Zertifikate erneuert werden, damit ab 2016 keine Zertifikatswarnungen auftauchen, allerdings sollte kein größeres Problem darstellen, außer etwas Fleißarbeit.

25 Gedanken zu „Migration Stammzertifizierungsstelle SHA1 zu SHA256 (Hashalgorithmus)“

  1. Wir haben zwei Server, also eine zweistufige PKI mit Server 2012 R2.
    Der Root CA Server ist also normalerweise ausgeschaltet.
    Müssen wir irgendwas besonderes beachten? Muss auf dem Root CA auch etwas gemacht werden? Muss der evtl dann den Aussteller-Server neu zertifizieren mit einem SHA256 Cert? Bin mit dem Umgang bei der ganzen PKI Geschichte nicht ganz so vertraut und habe Angst mit evtl Halbwissen irgendwas gegen die Wand zu fahren… DIe Anleitung ist ansonsten nämlich verdächtig einfach :D

    Antworten
    • Hallo,

      die Root-CA muss nur zur Erneuerung der Root-Sperrliste, und zur Erneuerung des Zertifizierungsstellenzertifikats der Issuing-CA (SUB-CA) eingeschaltet werden.

      Antworten
  2. Ahh.. hat sich erledigt: das neue Root-CA war dem Client noch nicht bekannt, daher wurde noch das alte verwendet :-|

    per GPO das neue verteilt und per gpupdate /force die Anwendung erzwungen -> schon fluppt’s

    danke

    Antworten
    • Hi Stefan,
      wenn die Root-CA im AD integriert ist, brauchst du keine zusätzliche GPO zum Verteilen des Zertifikats. Das neue Zertifikat wird automatisch verteilt (ADSI Edit -> Konfiguration -> Services -> Public Key Services -> Certification Authorities). Wenn es sich um eine StandAlone oder Offline Root-CA handelt musst du es entsprechend verteilen bzw im AD hinterlegen. Falls du eine zusätzliche GPO erstellt hast, kann es sein, dass du das Zertifikat doppelt im Zertifikatsspeicher des Clients hast, dies kann zu Problemen führen, wenn du das Zertifikat wieder tauschen musst.
      Gruß, Frank
      PS: Liebe Grüße an die Mannschaft :-)

      Antworten
  3. Hi Frank,

    deine Anleitung habe ich jetzt ja schon mehrfach erfolgreich verwendet – TOPP
    aber dennoch: wenn ich in der CA jetzt mehrere Root-Zertifikate habe (z.B. Index 0 und 1), dann wird immer noch das alte Root-Cert (Index 0) benutzt, wenn ich ein neues Zertifikat anfordere.

    Wie erzwinge ich, dass das neue Root-Cert verwendet wird?

    Gruß, Stefan

    Antworten
  4. Hallo zusammen,

    der Provider meiner RootCA ist Ultimaco Crypto Server CSP. Ich würde diesen gerne umstellen, damit SHA256 möglich ist. Gibt es hierzu etwas zu beachten?

    Antworten
  5. Was muss ich den nun tun, um auf einem Windows 2008R2 Server den Kryptograpie-Anbieter von „Microsoft Strong Cryptographic Provider“ der RootCA auf „Microsoft Software Key Storage Provider“ zu ändern?

    MfG Sven

    Antworten
  6. kleiner Tip:
    wenn man sha256 klein schreibt (certutil -setreg ca\csp\CNGHashAlgorithm sha256), dann startet die CA nicht mehr und wirft einen kryptischen Fehler. Ausnahmsweise es hier „case sensitive“. Einfach den Befehl nochmal mit groß SHA256 ausführen und dann startet sie wieder

    Antworten
  7. Hallo
    bei mir tritt der gleiche Fehler auf, ich müsste den Kryptografieanbieter ändern, damit ich SHA256 nutzen kann.
    Änderung von “Microsoft Strong Cryptographic Provider” zu “Microsoft Software Cryptographic Provider”. Hat jemand eine Idee bzw. Lösung?

    Gruß
    Tobi

    Antworten
  8. Hallo
    Für SHA256 muss ich den Kryptografieanbieter zu ändern, gibt es hierfür auch etwas zu beachten?

    Aktuell benutze ich „Microsoft Strong Cryptographic Provider“ geändert werden müsste es zu „Microsoft Software Cryptographic Provider“

    Nach
    certutil -setreg ca\csp\cnghashalgorithm 0x0000800c
    bekomme ich eine Erfolgsmeldung, aber ein Starten der CA schlägt fehl.
    Fehlermeldung: „0x57 Falscher Parameter“
    (Zugriff auf CN=Public Key Services, CN=Services, CN=Configuration, DC=domainname,DC=com ist möglich)
    Ein zurücksetzen mit
    certutil -setreg ca\csp\cnghashalgorithm 0x0000800a
    lässt die CA wieder starten.

    Gruß
    Markus

    Antworten
  9. Hi,
    ich habe vor längerm auch nach deiner Anleitung auf SHA256 gewechselt.
    Jetzt musste ich feststellen das Office 2010 keine SHA256 Zertifikate für die Signierung von Macros auflistet sondern nur SHA1.

    Es gibt wohl einen Hotfix https://support.microsoft.com/en-us/kb/2598139 aber der sagt das keines der installierten Produkte auf dem System betroffen wäre.

    Kann ich denn bei der Zertifikatserstellung troztdem noch manuell SHA1 erzwingen?

    Gruß Marco

    Antworten
  10. Hi,
    Certsvc meldet Erfolg, jedoch kann das Zertikfat mit dem selben Schlüssel nicht erneuert werden. Fehler:
    Die Anforderung enthält keine Zertifikatvorlageninformationen.
    Muss jetzt das Zertifikat ersetzt werden?
    Falls ja, welche Schritte sind dann erforderlich?

    Antworten
  11. Hallo,

    mich würde interessieren wie man mit erneuerten Zertifikaten richtig umgeht, also z.B. mit dem erneuerten Zertifizierungsstellenzertifikat „Zertifikat Nr. 1“. Dieses wird ja entweder über GPO oder über das AD verteilt.
    Was passiert mit dem „Zertifikat Nr. 0“?
    MUSS der Client das auch behalten wenn nichts mehr dieses Zertifikat nutzt, also muss eine „Versionskette“ beibehalten bleiben oder kann ich es problemlos löschen, wenn ich wollte dass im Zertifikatsspeicher derselbe Zertifikatsname nicht 2~3mal vorhanden ist?

    Wie funktioniert das mit abgelösten Vorlagen? Wann benutze ich sie und was ist der Unterschied zwischen Ihnen und dem Ändern der bereits genutzten Vorlage? Wenn ich die Vorlage ändere ändert sich auch deren Versionsnummer; hat das irgendwelche Auswirkungen auf die Clients/Benutzer, welche Zertifikate auf Basis der älteren Vorlage ausgestellt bekommen haben?

    Grüße

    AStraube

    Antworten
  12. Das Problem ist der Kryptografie Anbieter: „Microsoft Strong Cryptographic Provider“
    Es muss erst durch den „Microsoft Software Key Storage Provider“ ersetzt werden.

    Antworten
  13. Hi,
    leider hat es nicht geklappt nach dieser Anleitung. Der Wert wurde zwar gesetzt und ist auch mit -getreg wieder auslesbar. Dienst gestartet, Server gestartet, ohne Erfolg. In den Eigenschaften der Zertifizierungstelle steht immer noch SAH-1 bei Zertifikat 0 (abgelaufen) und Zertifikat 1. Was kann man noch prüfen, tun?

    Alter Wert:
    CNGHashAlgorithm REG_SZ = SHA256

    Neuer Wert:
    CNGHashAlgorithm REG_SZ = SHA256
    CertUtil: -setreg-Befehl wurde erfolgreich ausgeführt.

    CNGHashAlgorithm REG_SZ = SHA256
    CertUtil: -getreg-Befehl wurde erfolgreich ausgeführt.

    Antworten

Schreibe einen Kommentar