"Расскажите, будьте так добры, как запустить самоподписанный драйвер, не активируя тестовый режим (т.е. не используя команду bcdedit.exe /set testsigning on, которая помимо включения режима доверия к самоподписанным драйверам заодно отключает некоторые функции по управлению цифровым контентом).
Для информации: сделать доверенным свой сертификат невозможно, т.к. его для этого требуется подписать кросс-сертификатом от MS или чьим-нибудь ещё, чтобы выстроилась цепочка сертификатов. Даже если принудительно добавите сертификат в качестве корневого, при попытке использовать его для драйверов система пошлёт Вас куда подальше (несмотря на то, что в свойствах драйвера будет говориться, что сертификат совершенно валиден)."
"То что сделать свой сертификат доверенным невозможно — это вы уже очевидную ерунду говорите. Это же ваш компьютер в конце концов :) Любой админ поднимавший свой CA это знает и для этого не надо быть низкоуровневым разработчиком.
Вам нужно добавить корневой сертификат CA в TRCA, и скорее всего еще нужен сертификат которым производилась подпись (или достаточно опять сертификата CA) в Trusted Publishers.
Всё это разумеется надо делать в хранилище сертификатов компьютера, а не пользователя.
Я, честно говоря, действительно не загружал таким образом самоподписанные драйверы самостоятельно (я не разработчик, обычно использую PKI для других целей), но мнению того MVP который мне об этом сообщал, склонен доверять, тем более что его компания использует (или использовала) такой подход для своего ПО."
"Да, я лично это попробовал, причём первым же делом, как только столкнулся с проблемой необходимости наличия ЦП у драйверов. Если просто подписать драйвер сгенерированной тестовой подписью, то винда говорит, что подпись невалидна, и драйвер не грузит. Если добавить свой сертификат в корневое хранилище, то винда утверждает, что подпись полноценная, доверенная, и вообще вся из себя самая что ни на есть настоящая, но несмотря на это запускать драйвер по-прежнему упорно отказывается."
"Я не увидел у вас в ответе подтверждений что вы делали именно как я сказал, так что извините, но некоторые вопросы задам снова:
Как генерировали сертификаты?
Какие опции включены в Key Usage у подписывающего сертификата?
Точно ли все операции производились с хранилищем компьютера, а не пользователя?
В TRCA надо добавлять сертификат с публичным ключом CA, а не тот которым подписываем драйвер. Так и делали?
В TP надо добавлять либо сертификат с публичным ключом CA, либо непосредственно тот которым подписываем. Не уверен, так что для эксперимента лучше добавить оба."