2010-11-10 2 views
0

У меня есть элемент управления ActiveX, который предполагается установить при первом посещении веб-страницы.Могу ли я подписать элемент управления ActiveX с корневым сертификатом?

У меня есть самоподписанный сертификат, созданный с OpenSSL и его дочерним элементом. Проблема в том, что если я подписываю элемент activeX с корневым сертификатом, Windows не может его проверить, проверяя activex, даже если он установлен как доверенный.

Он пишет, что

"основное расширение A сертификата не наблюдалось"

и "Сертификат":

«Сертификат не действителен, потому что одному из центров сертификации в пути сертификации, по-видимому, не разрешено выдавать сертификаты, или этот сертификат не может использоваться в качестве сертификата конечного объекта ».

Если я использую дочерний сертификат для подписания, в то время как корневой сертификат находится в доверенном состоянии, eberything в порядке.

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

ответ

1

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

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

Это решение в порядке, в организации, где вы можете установить свой корневой ключ на ПК каждого пользователя заранее. Если вы хотите использовать свой элемент управления ActiveX на веб-странице в общедоступном Интернете, вам придется либо убедить пользователей доверять вашему сертификату (даже если у них нет веских оснований для этого), либо вам придется купить сертификат подписи кода от одного из коммерческих центров сертификации, чьи корневые сертификаты уже известны общим браузерам.

Наконец, я бы действительно советуют с помощью элементов управления ActiveX для ничего, как они будут только в состоянии работать на Windows, и только если они доверяют. Большинство людей, которые имеют какой-либо смысл, будут иметь защиту своего браузера, чтобы отклонить их. Вы будете иметь гораздо больший успех, производя активный контент с другой технологией (например, Javascript)

+0

Thanks. Нашел ответ сам, но тем не менее. – foret

+1

Как вы используете OpenSSL для создания единого сертификата, который можно использовать для подписи кода * и *, также можно сохранить в хранилище доверенных корневых сертификатов, чтобы он мог проверять? –

0

Использование собственных сертификатов для цифровой подписи ваших бинарных файлов в значительной степени идет вразрез с concept of using digital certificates с программами.Основная идея состоит в том, чтобы доказать, что код был создан вами (подлинность) и не был изменен с момента его выпуска (целостности). Это необходимо сделать, используя подписанный сертификат, подписанный доверенным центром сертификации (CA).

Я ответил на это чуть подробнее по следующему вопросу.

creating a key and signing executable with signtool

+1

Есть все еще хорошее применение для самозаверяющего сертификата. Что делать, если у вас есть внутренняя среда QA, в которой должны быть подписаны и протестированы исполняемые файлы? У нас есть одно, и наша среда QA не должна генерировать официально подписанные исполняемые файлы. Не стоит (и это опасно) покупать официальный сертификат, который будет использоваться только для обеспечения качества. –

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

  • Нет связанных вопросов^_^