Fehler 80070643 und 800b010b bei Microsoft .NET 4 Windows Updates KB2656351, KB2656368 und KB2600217
Der eine oder andere Administrator ist sehr wahrscheinlich auch über das folgende Problem gestolpert, als er bei dem Versuch die Windows Updates für Microsoft .NET 4.0 einzuspielen
- Sicherheitsupdate für Microsoft .NET Framework 4 (KB2656351)
- Sicherheitsupdate für Microsoft .NET Framework 4 (KB2656368)
- Update für Microsoft .NET Framework (KB2600217)
diese Fehlermeldung im Systemereignisprotokoll (Quelle: Windows Update Agent, Event-ID 20) erhielt:
Installationsfehler: Die Installation des folgenden Updates ist mit Fehler 0×80070643 fehlgeschlagen: Sicherheitsupdate für Microsoft .NET Framework 4 unter Windows XP, Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 x86 (KB2656351)
Problem
In meinem Fall trat der obige Fehler auf einigen (kurioserweise nicht auf allen!) Maschinen unter Windows Server 2003 (32 Bit) inkl. Service Pack 2, aber auch unter Windows Server 2008 (64 Bit Version) inkl. Service Pack 2 auf. Bei letzterem Betriebssystem lieferte Windows Update einen weiteren Fehlercode 800b010b, welcher mich letztendlich bei meiner Fehleranalyse auf die richtige Fährte führte:
Bei meiner Suche nach dem ersten Fehlercode 80070643 stieß ich auf den folgenden Microsoft Support KB Eintrag. Wie beschrieben lud ich das .NET Framework Cleanup Tool für die Reparatur der .NET Framework Umgebung herunter und führte selbiges mit der Option Cleanup Now aus:
Das Tool entfernt dabei alle .NET Framework Einstellungen (per Auswahl auch auf einzelne Versionen beschränkbar) von dem betroffenen System. In Folge dessen musste ich nun alle .NET Framework Versionen (unter Windows Server 2003 sind das immerhin Version 1.1, 2.0, 3.0, 3.5 und 4.0 inkl. aller Service Packs) neu installieren. Dank internem Windows Update Server (WSUS) kein Problem – doch nach der Installation der oben aufgeführten Updates und mehreren Neustarts erhielt ich die selben Fehlermeldungen erneut – eine Bereinigung und anschließende Neuinstallation behebt das Problem demnach nicht.
Analyse und Ursache
Jedes Windows Update legt bei der Installation ein Protokoll im temporären Verzeichnis des Systems an (%TEMP%\KB<Nummer>.html). In diesem Protokoll wird für die betroffenen Updates immer die gleiche Ursache genannt (hier das Beispiel für KB2656368):
Action: Downloading and/or Verifying Items... [4/24/2012, 8:54:49] Verifying Digital Signatures: d:\f4fc31bd6ed42ecc7c4387d680\NDP40-KB2656368.msp [4/24/2012, 8:54:49] d:\f4fc31bd6ed42ecc7c4387d680\NDP40-KB2656368.msp: Verifying signature for NDP40-KB2656368.msp... [4/24/2012, 8:54:49] d:\f4fc31bd6ed42ecc7c4387d680\NDP40-KB2656368.msp - Signature verification for file NDP40-KB2656368.msp (d:\f4fc31bd6ed42ecc7c4387d680\NDP40-KB2656368.msp) failed with error 0x800b010e (Der Sperrvorgang konnte nicht fortgesetzt werden. Die Zertifikate konnten nicht überprüft werden.) [4/24/2012, 8:54:49] d:\f4fc31bd6ed42ecc7c4387d680\NDP40-KB2656368.msp Signature could not be verified for NDP40-KB2656368.msp [4/24/2012, 8:54:49] No FileHash provided. Cannot perform FileHash verification for NDP40-KB2656368.msp [4/24/2012, 8:54:49] File NDP40-KB2656368.msp (d:\f4fc31bd6ed42ecc7c4387d680\NDP40-KB2656368.msp), failed authentication. (Error = -2146762482). It is recommended that you delete this file and retry setup again. [4/24/2012, 8:54:49] Failed to verify and authenticate the file -d:\f4fc31bd6ed42ecc7c4387d680\NDP40-KB2656368.msp [4/24/2012, 8:54:49] Please delete the file, d:\f4fc31bd6ed42ecc7c4387d680\NDP40-KB2656368.msp and run the package again [4/24/2012, 8:54:49] Action complete [4/24/2012, 8:54:49] calling PerformAction on an installing performer [4/24/2012, 8:54:49] Action: Performing actions on all Items... [4/24/2012, 8:54:49] Wait for Item (NDP40-KB2656368.msp) to be available [4/24/2012, 8:54:50] Action complete [4/24/2012, 8:54:50] Sending Manifest Report [4/24/2012, 8:54:51] Final Result: Installation failed with error code: (0x800B010B), "Allgemeiner Vertrauensfehler." (Elapsed time: 0 00:00:03).
Es ist erkennbar, dass das im Update enthaltene Paket (NDP40-KB2656368.msp) eine digitale Signatur enthält, deren Überprüfung fehlschlägt. Über die Eigenschaften der MSP-Datei lässt sich diese Signatur anzeigen:
Bei dem Klick auf Details erhielt ich daraufhin den folgenden Fehler:
Lässt man sich nun das Zertifikat des Signaturgebers (Microsoft) anzeigen, so kann Windows die Gültigkeit des Zertifikats nicht bestätigen, da das Programm keine gültige Zertifikatsperrliste von der Zertifizierungsstelle ermitteln kann, die dieses Zertifikat ausgestellt hat.
Die Zertifikatsperrliste (Certificate Revocation List = *.crl) ist eine Datei, über die ein Aussteller abgelaufene und kompromittierte Zertifikate für ungültig erklären kann. Die URL für die CRL ist dabei immer in den Eigenschaften eines Zertifikates verankert. Kann die Sperrliste einmal nicht geladen werden, so geht ein Client im Standard immer von der Ungültigkeit eines Zertifikates aus.
Für die beschriebene Datei gibt es nun 3 in Frage kommende (weil hinterlegte) Sperrlisten:
- http://crl.microsoft.com/pki/crl/products/microsoftrootcert.crl
- http://crl.microsoft.com/pki/crl/products/MicCodSigPCA_08-31-2010.crl
- http://crl.microsoft.com/pki/crl/products/MicrosoftTimeStampPCA.crl
Normalerweise lässt sich die Erreichbarkeit/Verfügbarkeit der jeweiligen CRL durch das Herunterladen prüfen – alle CRLs waren aber erreichbar und konnten erfolgreich heruntergeladen werden. Trotzdem konnte das Zertifikat nicht überprüft werden.
Lösung
Bei der Fortsetzung meiner Suche fand ich schließlich den folgenden, wertvollen Hinweis im Technet-Forum von Microsoft. Eigentliche Ursache für das beschriebene Verhalten sind die System-Einstellungen für die Zertifikat-Überprüfung (Software Publishing State Key Values).
Mit Hilfe des Tools SetReg.exe von Microsoft – welches im Microsoft .NET Framework SDK enthalten ist – lassen sich diese aktuellen Einstellung anzeigen und ändern. Auf den Systemen, auf denen die Updates nicht installiert wurden, zeigte SetReg folgende Werte:
Software Publishing State Key Values (0xc9): 1) Trust the Test Root........................... TRUE 2) Use expiration date on certificates........... TRUE 3) Check the revocation list..................... TRUE 4) Offline revocation server OK (Individual)..... FALSE 5) Offline revocation server OK (Commercial)..... FALSE 6) Java offline revocation server OK (Individual) FALSE 7) Java offline revocation server OK (Commercial) FALSE 8) Invalidate version 1 signed objects........... FALSE 9) Check the revocation list on Time Stamp Signer TRUE 10) Only trust items found in the Trust DB....... FALSE
Im erwähnten Technet-Eintrag wurde der Punkt 5 Offline revocation server OK (Commercial) als kritisches Element beschrieben. Setzt man diesen über den Befehl
setreg 5 TRUE
auf wahr (allows offline approval for commercial certificates), so lassen sich die Windows Updates ohne Probleme installieren. Außerdem funktioniert danach die Anzeige des Zertifikates des Signaturgebers der MSP-Paketdatei ebenfalls ohne Probleme:
Das Herunterladen des ca. 115 MByte (!) großen .NET Framework SDK für die Ausführung von SetReg kann man sich allerdings sparen, da selbiges Tool lediglich einen Wert in der Registry verändert. In meinem Fall hatte der betroffene Benutzer auf dem System den folgenden Eintrag:
[HKCU\Software\Microsoft\Windows\CurrentVersion\WinTrust\Trust Providers\Software Publishing]
“State”=DWORD:000000c9
Setzt man nun diesen Wert auf
“State”=dword:00022849
so entspricht diese Einstellung den auf der Webseite für SetReg beschriebenen DEFAULT Werten:
Updated Software Publishing State Key Values (0x22849): 1) Trust the Test Root........................... FALSE 2) Use expiration date on certificates........... TRUE 3) Check the revocation list..................... TRUE 4) Offline revocation server OK (Individual)..... FALSE 5) Offline revocation server OK (Commercial)..... TRUE 6) Java offline revocation server OK (Individual) FALSE 7) Java offline revocation server OK (Commercial) TRUE 8) Invalidate version 1 signed objects........... FALSE 9) Check the revocation list on Time Stamp Signer FALSE 10) Only trust items found in the Trust DB....... FALSE
Nach dieser simplen und kleinen Änderung funktioniert die Installation der Windows Updates KB2656351, KB2656368 und KB2600217 ohne Probleme.
Fazit
Obwohl ich bereits das eine oder andere Problem mit Windows Updates für das Microsoft .NET Framework lösen musste, verlangte der hier beschriebene Fehler einen extremen Zeit- und Arbeitsaufwand (erkennbar am Umfang des Artikels). So habe ich allein für die Suche und Analyse mehrere Stunden investieren müssen. Warum und vor allen Dingen welches Programm den Standardwert für die Software Publishing Key Values von 23c00 (siehe .DEFAULT Benutzerprofil) auf c9 abgeändert hat, bleibt mir ein Rätsel. Umso überraschender ist doch die recht schnelle und einfache Behebung des Problems, mit dessen Lösung ich hoffentlich anderen Leidensgenossen helfen kann.
Wie bei allen meinen Beiträgen gilt: Bei Tipps, Vorschlägen sowie Fragen oder Kritiken hinterlasst bitte einen Kommentar.






Danke für den Artikel, und Hut ab vor der Arbeit!
lg
Wow, das liest sich schon nach sehr viel Arbeit. Vielen Dank für diesen und natürlich auch für die restlichen Artikel. ;)
(sorry for the bad German) – Veilen Dank von mir auch. Bei mir scheint es etwas mit dem User Settings GPO zu tun:
Preferences > Control Panel Settings > Internet Settings > Internet Explorer 8
Ohne den hat ein neu anwänder profile den richtige default setting.
Muss mehr mitt den herum speilen.
Hallo!
Ganz großes Dankeschön für deine Anleitung! Bei mir ist auch gerade eben der Fehler aufgetreten! Da hast du Dir aber echt viel Arbeit gemacht mit dem ausführlichen Artikel.
Übrigens schöner Blog, mach weiter so.
Grüße, Tommy
Bei einem Dutzend PCs mit WinXP dasselbe Problem; auf die Ursache der nicht prüfbaren Signatur war ich auch bereits gestoßen und darüber hab ich dann diesen blog mit dem weiten Lösungsweg gefunden. Besten Dank für die Beschreibung – funktioniert nun tadellos. :D
Respekt vor der Arbeit. Super Anleitung. Ich habe diesen Fehler schon seit monaten auf einem meiner Server gehabt und bin nicht drauf gekommen. Nach dieser Anleitung habe ich die registry geändert und schon ließen sich alle Updates mit WSUS installeiren auf dem server.
Endich…. Vielen Vielen Dank.
Danke für Deine Anleitung, hat uns sehr geholfen. Ziehe den Hut vor Deiner Arbeit.
lg
Vielen Dank für die detaillierte Beschreibung.
Bin vor Jahren schon in Unkenntnis der genauen Mechanismen an den NDPxxx Updates verzweifelt.
Respekt, ist mir eine riesige Hilfe.
Schade, auf Windows7 funktioniert das nicht mehr -.-”
Vielen Dank für diesen Artikel!
Hatte schon schlimmeres befürchtet!
Danke! Auch für mich, der eher weniger mit Systemfragen zu tun hat, war das eine hervorragende und hilfreiche Problembeschreibung und -lösung.
Hallo Bent!
Vielen Dank für den äußerst hilfreichen Artikel.Bei mir tat folgendes Problem auf:Alggemeiner Vertrauensfehler bei der Installation von Netframework 4 unter XP32-bit.Habe dann dem Arikel folgend festgestellt,dass die digitale Signatur abgelaufen war.Über einen sich auftuenden Assisten habe ich das Zertifikat an den vomm Assistenten bestimmten Ort importiert-und alles war ok.
Gruß