2012-06-27 20 views
22

Ich habe mir von einem Zertifikatserver ein Code Signing-Zertifikat ausgestellt. Ich habe auch das Stammzertifikat vom selben Zertifikatserver herausgegeben. Das Stammzertifikat ist sowohl im Zertifikatsspeicher des aktuellen Benutzers als auch des lokalen Computers im Ordner Vertrauenswürdige Stammzertifizierungsstellen vorhanden. Ich habe erfolgreich eine DLL mit dem signtool.exe Assistenten unterzeichnet:Warum ist mein Stammzertifikat nicht vertrauenswürdig?

"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\signtool.exe" signwizard <MyDLLName>.dll 

Allerdings, wenn ich versuche, meine DLL, um zu überprüfen, ist es nicht Überprüfung mit dem folgenden Fehler:

"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\signtool.exe" verify <MyDLLName>.dll 
SignTool Error: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider. 
SignTool Error: File not valid: <MyDLLName>.dll 

Warum ist das passiert? Ich dachte, das Stammzertifikat im Ordner Vertrauenswürdige Stammzertifizierungsstellen würde die DLL überprüfen.

Antwort

49

Fügen Sie die Option/pa hinzu und weisen Sie sie an, anstelle der Windows-Treiberüberprüfungsrichtlinie die Standardauthentifizierungsüberprüfungsrichtlinie zu verwenden. Dies bedeutet, dass Ihre Zertifikatsspeicher und nicht die begrenzten CAs, mit denen Microsoft vertraut, geprüft werden Fahrer.

Schauen Sie hier für weitere Optionen: http://msdn.microsoft.com/en-us/library/8s9b9yaz(v=vs.90).aspx

+0

Hallo Kevin, Ich versuche, einen WCF-Dienst von selbstsignierten SSL-Zertifikat gehostet zu rufen, wird SSL lokal mit über Option Arbeit zu installieren? Können Sie den vollständigen Befehl senden, um zu verwenden. Ich habe sowohl .pfx und .cer-Dateien, aber ASP.net kann SSL-Provider nicht vertrauen. –

+0

@SanjayZalke Sie können die Windows-Zertifikatverwaltungstools verwenden, um das Zertifikat im Ordner "Vertrauenswürdige Stammzertifizierungsstellen" des lokalen Computers zu installieren. Sie können es über mmc.exe starten und das Zertifikats-Snap-In hinzufügen. –

+5

Ein wichtiger Hinweis hier ist, dass, wenn Sie dies mit einem KERNEL DRIVER (.sys) tun, dies nicht funktioniert, da Kernel-Treiber letztlich durch das Microsoft Root-Zertifikat vertraut werden müssen. Die Überprüfung selbst wird bestanden, wenn Sie die genannte Option/pa hinzufügen, aber der Treiber wird nicht wirklich geladen, es wird immer noch sagen, Unsigned-Treiberfehler. Während des Bootvorgangs hat der Kernel keinen Zugriff auf den vollständigen Zertifikatsspeicher, so dass er nur die begrenzten CA-Vertrauensstellungen von Microsoft mit Treibern betrachten kann. – Syclone0044

Verwandte Themen