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.
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
To change the CA to SHA256 (SHA2), the following command must be executed on the command line:
certutil -setreg ca\csp\CNGHashAlgorithm SHA256
If the output looks like the above, the CA must be restarted, i.e. stop once and start again:
Whether SHA256 is used as a hash algorithm can be checked again in the properties of the CA
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
Only new or renewed certificates are signed with SHA-256. Certificates can be renewed via the certificate snap-in in the MMC:
After the certificate was renewed, it was signed with SHA256 by the CA:
And here again the example with the IIS, all valid, with SHA256:
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.
The certificate can also be renewed here (note: the wizard stops the CA):
After the certificate has been renewed, it also contains SHA256:
And here again for comparison the example IIS, old and new certificates remain valid.
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.
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
Hallo,
die Root-CA muss nur zur Erneuerung der Root-Sperrliste, und zur Erneuerung des Zertifizierungsstellenzertifikats der Issuing-CA (SUB-CA) eingeschaltet werden.
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
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 :-)
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
Hallo,
bei meinem 2008R2 habe ich auch den 0x57, ich bekommen den Anbieter nicht gewechselt, es hakt beim Zertifikate löschen.
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?
Okay, es geht also nicht so einfach.
Bleibt mir wohl der Umzug auf ein Windows Server 2012 oder höher nicht erspart.
https://ammarhasayen.com/2015/02/04/sha-2-support-migrate-your-ca-from-csp-to-ksp/
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
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
Ja, geht auch unter WindowsServer 2008R2 – siehe http://www.it-training-grote.de/download/WindowsCA-SHA1-SHA256.pdf
Kann man diese Umstellung auch mit einer PKi auf WIndows Server 2008 R2 realisieren, oder ist hierzu ein Update auf 2012 nötig?
Cheers
Dieser nicht ganz unwichtige Punkt fehlt noch und beantwortet all Eure Fragen:
https://technet.microsoft.com/en-us/library/dn771627.aspx
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
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
Office SP 2 hat geholfen.
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
Danke für die ausführliche Anleitung.
Hat super funktioniert!
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?
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
Was ist mit dem Fingerabdruck Algorithmus sha1???
Ist dieser auch betroffen?
Vielen Dank
Gruss
Alitai
Hi,
der ist nicht betroffen.
Gruß, Frank
Das Problem ist der Kryptografie Anbieter: „Microsoft Strong Cryptographic Provider“
Es muss erst durch den „Microsoft Software Key Storage Provider“ ersetzt werden.
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.
Hallo Heinz,
wie im Artikel beschrieben, muss du das Zertifikat der CA erneuern, damit SHA256 genutzt wird.
Gruß, Frank