2010-05-11 5 views
1

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

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

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

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

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

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

Любые предложения?

+0

Хм, я, возможно, решил это ... похоже, проблема в том, что один из корневых сертификатов, который я включил, был неправильным. Я буду знать наверняка завтра, когда я развожу недавно подписанный элемент управления ... – davidcl

+0

Описание с использованием [OpenSSL для Windows] (http://stackoverflow.com/questions/6654543/how-to-create-pfx-with- мой цепной из-сертификатов). – emboss

ответ

2

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

По запросу, вот информация о том, как создать файл PFX. Используемые ниже 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 

Оглядываясь назад, я мог бы сэкономить время, используя Signcode.exe аки мастера Code Signing (который я думаю, является частью .NET SDK) который напрямую использует файлы .spc и .pvk.

+0

Как вы создали свой PFX, который содержит все сертификаты в цепочке сертификации? у меня такая же проблема - и вы решили ее, не сообщив нам, как это сделать! –

+0

Ian, извините, я не видел ваш комментарий раньше, но на самом деле у меня есть заметки об этом, и я добавляю их к этому ответу. – davidcl

Смежные вопросы