Как подписать ActiveX DLL с помощью сертификата

2

Я создал DLL, которую я просматриваю через COM, который мне нужно подписать с сертификатом.

Я создал проект Visual Studio 2008 и имеет библиотеку классов, которая содержит код для моего объекта ActiveX. Затем я создал страницу ASP.net, которая ее использует:

<script type="text/javascript">
    var x = new ActiveXObject("Foo.Bar");

    x.SomeMethod();
</script>

Я запустил сайт и получал кучу ошибок с безопасностью. Я запустил regasm/tlb/codebase foo.dll и установил его таким образом. Я также изменил кучу настроек безопасности в IE, чтобы позволить мне запускать неподписанные элементы управления ActiveX, и все работает нормально.

Теперь мне нужно упаковать его в файл CAB и подписать его с помощью сертификата, чтобы мне не приходилось касаться настроек безопасности (и поэтому пользователям также не нужно это делать).

Может ли кто-нибудь дать мне знать, как это сделать? Я даже не знаю, с чего начать. Я создал собственный сертификат с помощью инструмента makecert.exe, но я не уверен, как связать сертификат с DLL или как его упаковать в CAB и использовать его на веб-сайте.

  • 0
    Помимо правильных утверждений ниже о подписывании кода, вы должны знать, что написание элементов управления ActiveX в .NET не является лучшей практикой из-за проблем с производительностью и параллельными проблемами. Как минимум, вы должны попытаться скомпилировать в платформу .NETv4, так как эта версия может корректно загружаться бок о бок в одном процессе.
Теги:
certificate
activex

1 ответ

4
Лучший ответ

У Microsoft есть достойный технический документ о том, как это сделать:

Статья MSDN

Вот длинный и короткий: Чтобы подписать код

  • Подать заявку на сертификат из центра сертификации. Для получения инструкций по получению сертификата см. http://msdn.microsoft.com/workshop/security/authcode/certs.asp.

  • Получите последние инструменты для подписи файлов и проверки подписей. См. http://msdn.microsoft.com/library/default.asp?URL=/library/psdk/crypto/cryptotools_4739.htm.

  • Подготовьте свои файлы для подписания. Если вы подписываете файлы .exe,.ocx,.vbd или .dll, вам не нужно ничего делать. Если вы подписываете файл .cab, вы должны добавить следующую запись в ваш .ddf файл и переделать свой .cab файл:

    .Set ReservePerCabinetSize = 6144

  • Подпишите свои файлы, используя signcode.exe. Ниже приведен пример того, как вы можете подписать файл:

    Signcode -prog myfilename -name displayname -info http://www.mycompany-inc-10.com - spc mycredentials.spc -pvk myprivatekey.pvk

  • Проверьте свою подпись:

    • Чтобы протестировать подписанный файл .exe,.dll,.vbd или .ocx, запустите chktrust filename   где filename - имя файла, который вы подписали.
    • Чтобы протестировать подписанный файл .cab, запустите chktrust -c cabfilename.cab   где cabfilename - это имя файла .cab, который вы подписали.
  • 0
    У меня есть проект в Visual Studio, который создает файл CAB для меня. У меня нет файла .ddf? Что это такое? Кроме того ... есть ли способ сделать это полностью внутри Visual Studio без этих ручных шагов?
  • 0
    .DDF: файл DDF известен как файл директивы Diamond, текстовый файл, который можно открыть в блокноте или любом текстовом редакторе. DDF содержит конкретную информацию, необходимую для сжатия ваших файлов в файл кабинета; сам файл DDF не помещается в файл CAB. ПРИМЕЧАНИЕ. Этот файл не следует изменять без крайней необходимости.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню