Я создал 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 и использовать его на веб-сайте.
У Microsoft есть достойный технический документ о том, как это сделать:
Вот длинный и короткий: Чтобы подписать код
Подать заявку на сертификат из центра сертификации. Для получения инструкций по получению сертификата см. 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
Проверьте свою подпись: