Для платформы WEC2013 с загрузчиком безопасности Я создал самозаверяющий сертификат.Сертификат имеет атрибуты
Key Usage: Digital Signature (80)
Enhanced Key Usage: Code Signing (1.3.6.1.5.5.7.3.3)
Сертификат был экспортирован в файл ciroots.p7b
и файл PFX.ciroots.p7b
был добавлен в папку FILES платформы WEC2013, как описано здесь .Конструкция ОС, построенная на платформе, включает в себя копию файла ciroots.p7b
.
. PFX был использован для подписи файла с помощью команды
signtool -f /path/to/PFX -p ThePassword example.exe
Это соответствует описание .Команда signtool изменила .EXE.Результирующий файл примерно на 1 КБ больше исходного файла.
После запуска дизайна ОС на цели и копирования подписанного .EXE на цель должна быть возможность выполнить программу.Но запуск завершается неудачно с сообщением:
Невозможно выполнить example.EXE
Что я пропустил в действиях, описанных в документации WEC2013?Как я могу подготовить исполняемые файлы для запуска в дизайне ОС с включенным LVMOD?
Хотя во время процесса подписания сообщений об ошибках не было, возможно, я пропустил некоторые важные атрибуты.Каковы требования к сертификату, который будет использоваться для подписания кода с помощью LVMOD?
Редактировать: В соответствии с комментарием Daniels Я использовал signtool для проверки подписанного файла.Сертификат был установлен на ПК в хранилище Trusted (меня спросили, хочу ли я доверять сертификату).Запуск signtool как при Использование SignTool для проверки подписи файла Я получил результаты:
C:\Test>signtool verify example.exe
SignTool Error: A certificate chain processed, but terminated in a root
certificate which is not trusted by the trust provider.
Number of errors: 1
C:\Test>signtool verify /pa example.exe
Successfully verified: example.exe
C:\Test>
Первый сбой вызова, как указано в документации для signtool:
Если предыдущий пример не удался, возможно, подпись использовала сертификат подписи кода.По умолчанию SignTool используется для проверки политики драйвера Windows.