Почему мой корневой сертификат не доверен?
Я выдал сертификат сертификата подписи с сервера сертификатов. Я также выдал корневой сертификат с того же сервера сертификатов. Корневой сертификат существует в хранилищах сертификатов текущего пользователя и локального компьютера в папке "Доверенные корневые центры сертификации". У меня успешно подписан DLL с помощью мастера signtool.exe:
"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
Почему это происходит? Я думал, что наличие корневого сертификата в папке "Проверенные корневые центры сертификации" проверяет DLL.
Ответы
Ответ 1
В вашей команде подтверждения добавьте параметр /pa, чтобы указать ему использовать политику проверки подлинности по умолчанию вместо политики проверки драйверов Windows, то есть она будет рассматривать ваши хранилища сертификатов вместо ограниченного набора сертификатов. Microsoft доверяет драйверам.
Посмотрите здесь дополнительные параметры:
http://msdn.microsoft.com/en-us/library/8s9b9yaz(v=vs.90).aspx