Как я могу подписать элемент управления ActiveX с сертификатом подписи кода и быть проверенным издателем? - PullRequest
1 голос
/ 12 мая 2010

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

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

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

На вкладке «Путь сертификации» указано «Не удалось найти поставщика этого сертификата."

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

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

Есть предложения?

1 Ответ

2 голосов
/ 14 мая 2010

Вопрос на самом деле содержит правильную процедуру - выполните подпись с использованием файла PFX, который содержит корневой сертификат, промежуточный сертификат, сертификат разработчика и закрытый ключ. Кроме того, используйте сервер отметок времени. Моя проблема заключалась в том, что в мой 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 или мастер подписи кода (который я считаю частью SDK .NET), который напрямую использует файлы .spc и .pvk.

...