Как подписать ActiveX DLL с помощью сертификата - PullRequest
2 голосов
/ 28 декабря 2010

Я создал библиотеку 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 и использовать его на веб-сайте.

1 Ответ

4 голосов
/ 29 декабря 2010

У Microsoft есть хороший документ / учебное пособие о том, как это сделать:

MSDN Артикул

Вот длинное и короткое из этого: Чтобы подписать ваш код

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

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

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

    .Set ReservePerCabinetSize = 6144

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

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

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

    • Чтобы проверить подписанный файл .exe, .dll, .vbd или .ocx, запустите chktrust filename где имя файла - это имя файла, который вы подписали.
    • Чтобы проверить подписанный CAB-файл, запустите chktrust -c cabfilename.cab где имя_файла - это имя подписанного вами CAB-файла.
...