Migration root certification authority SHA1 to SHA256 (hash algorithm)

As of 01.01.2016, Microsoft will issue SSL certificates with Invalidate SHA1 as a hash algorithm. Web servers or services that use certificates with SHA1 therefore trigger certificate warnings in the browser for users. Therefore, SHA1 certificates should be exchanged slowly but surely. In order for an internal CA to issue certificates with SHA256 (SHA2), the CA must be converted from SHA1 to SHA2. The corresponding howto can be found here:

Here you can see that the hash algorithm of the CA is set to SHA1. The CA can therefore only issue certificates with SHA1.

image

As an example, here is an IIS web server that has obtained its certificate from the CA with SHA1. Here too, the hash algorithm is SHA1

image

To change the CA to SHA256 (SHA2), the following command must be executed on the command line:

certutil -setreg ca\csp\CNGHashAlgorithm SHA256

image

If the output looks like the above, the CA must be restarted, i.e. stop once and start again:

image

Whether SHA256 is used as a hash algorithm can be checked again in the properties of the CA

SHA256

We have therefore changed the hash algorithm of the CA to SHA-256. Previously issued certificates remain valid, of course nothing changes in the certificates, as shown here once again in the IIS example

image

Only new or renewed certificates are signed with SHA-256. Certificates can be renewed via the certificate snap-in in the MMC:

image

After the certificate was renewed, it was signed with SHA256 by the CA:

image

And here again the example with the IIS, all valid, with SHA256:

image

The root certificate naturally still contains SHA1 as a hash algorithm, as it has not yet been renewed. However, there is not necessarily a need to renew the root certificate by 2016, as the certification authority certificates remain valid even with SHA1.

image

The certificate can also be renewed here (note: the wizard stops the CA):

image

image

After the certificate has been renewed, it also contains SHA256:

image

And here again for comparison the example IIS, old and new certificates remain valid.

image

Of course, old SHA1 certificates must be renewed so that no certificate warnings appear from 2016, but this should not be a major problem, apart from a little hard work.

25 thoughts on “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

    Reply
    • Hallo,

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

      Reply
  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

    Reply
    • 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 :-)

      Reply
  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

    Reply
  4. Hallo,

    bei meinem 2008R2 habe ich auch den 0x57, ich bekommen den Anbieter nicht gewechselt, es hakt beim Zertifikate löschen.

    Reply
  5. 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?

    Reply
  6. 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

    Reply
  7. 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

    Reply
  8. Kann man diese Umstellung auch mit einer PKi auf WIndows Server 2008 R2 realisieren, oder ist hierzu ein Update auf 2012 nötig?

    Cheers

    Reply
  9. 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

    Reply
  10. 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

    Reply
  11. 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

    Reply
  12. 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?

    Reply
  13. 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

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

    Reply
  15. 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.

    Reply

Leave a Comment