Как я могу подписать управление ActiveX с сертификатом подписания кода и быть проверенным издателем?

StackOverflow https://stackoverflow.com/questions/2814233

Вопрос

Я пытаюсь подписать элемент управления ActiveX с сертификатом подписания кода, выданный Thawte. Я смог успешно подписать контроль с помощью SignTool.exe.

Когда я смотрю на свойства файла, он говорит: «Сертификат в подписи не может быть проверен».

Когда я рассматриваю сертификат, он говорит, что «Windows не имеет достаточно информации, чтобы проверить сертификат».

На вкладке «Кертификационные пути» она говорит: «Эмитент этого сертификата не может быть найден».

В Internet Explorer сертификат признан подписанным, но пользователь получает предупреждения о том, что издатель не проверяется.

Я попробовал создать один файл PFX, содержащий мой сертификат вместе с корневым и промежуточным сертификатами, которые цепят для моего сертификата разработчика Thawte, а затем повторно подписать элемент управления с использованием этого файла PFX. Нет кости.

Какие-либо предложения?

Это было полезно?

Решение

Вопрос на самом деле содержит правильную процедуру - выполните подпись с помощью файла PFX, который содержит корневой сертификат, промежуточный сертификат, сертификат разработчика и закрытый ключ. Также используйте сервер Timestamp. Моя проблема заключалась в том, что у меня был неправильный корневой сертификат, включенный в мой PFX, поэтому сертификат, используемый для подписания, не может церовать обратно к корню.

По запросу, вот информация о том, как создать файл PFX. The Cert2SPC и PVK2PFX, которые я использую ниже, также на платформе SDK.

cert2spc certpath1.cer certpath2.cer certpath3.cer codesign.spc

Где список файлов .CER включает в себя корневые, промежуточные и подписание кодов, а CodeSign.SPC - это выходной файл. Потом:

pvk2pfx -pvk privkey.pvk -spc codesign.spc

Запуск PVK2PFX таким образом запускает мастер, который подсказывает для частной ключевой парольной фразы, а также местоположение выходного файла и пароль для выходного файла.

Наконец, SignTool делает фактический подписание кода:

signtool sign /f my_certificates.pfx /p my_passphrase /t http://timestamp.verisign.com/scripts/timstamp.dll my_activex_control.ocx

В RetSepect я мог бы сохранить время с использованием Signcode.exe aka Мастер подписи кода (который, я думаю, является частью .NET SDK), который использует файлы .spc и .pvk напрямую.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top