22
我已經從證書服務器發佈了自己的代碼簽名證書。我還自己頒發了來自同一證書服務器的根證書。 根證書存在於「受信任的根證書頒發機構」文件夾中的「當前用戶」和「本地計算機」證書存儲區中。我成功使用signtool.exe嚮導簽訂了DLL:爲什麼我的根證書不受信任?
"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\signtool.exe" signwizard <MyDLLName>.dll
然而,當我嘗試驗證我的DLL,它驗證失敗,出現以下錯誤:
"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
爲什麼這發生?我認爲在Trusted Root Certification Authorities文件夾中擁有根證書可以驗證DLL。
嗨凱文,我試圖調用由自簽名的SSL證書託管WCF服務,將在本地安裝SSL與上面的選項工作?你能發送完整的命令來使用嗎?我有.pfx和.cer文件,但ASP.net無法信任SSL提供程序。 –
@SanjayZalke您可以使用Windows證書管理工具將證書安裝到本地計算機的受信任根CA文件夾中。您可以通過mmc.exe啓動它並添加證書管理單元。 –
一個重要這裏需要注意的是,如果你有一個內核驅動程序(.SYS)這樣做,這是不行的,因爲內核驅動程序必須最終由Microsoft根證書信任。如果添加提到的/ pa選項,驗證本身將會通過,但驅動程序實際上不會加載,它仍然會說未簽名的驅動程序錯誤。在引導過程中內核沒有訪問完整的證書存儲,因此只能看一組有限的與司機CA的微軟信託。 – Syclone0044