Internet Explorer вылетает при загрузке подписанного ocx - PullRequest
4 голосов
/ 20 марта 2012

У меня есть библиотека .ocx / ActiveX, которую я написал в Delphi.Я тщательно протестировал эту библиотеку в следующих средах:

Windows XP SP3 - IE6 Windows XP SP3 - IE7 Windows XP SP3 - IE8 Windows 7 Ultimate, 64-разрядная версия - IE 9 (32-разрядная версия)

библиотека взаимодействует с моим сервером IIS, затем загружает интерфейс библиотеки MsRdpClient, затем запускает сеанс RDP в клиентской области браузера.Отлично работает.

Теперь настало время развертывания, будет развертываться на сайте клиента в их сети.Пользователи будут получать доступ / загружать ocx на свои ПК, подключаясь к клиентской сети через VPN и т. Д.

Мы приобрели сертификат подписи кода у Go Daddy.Используя Microsoft signtool, я успешно подписал ocx.Вот процесс, который я использовал:

Я скачал свой сертификат из GoDaddy.Я установил сертификат в IE.Я экспортировал сертификат из IE в файл .pfx, закрытый ключ и все.Я успешно подписал сертификат с помощью signtool sign. Я также проверил подписание сертификата с помощью более старого signtool (6.1) с помощью signtool signwizard и утилиты pvk, создав файл pvk и сопоставив его с файлом .spc, полученным от GoDaddy.

В первый раз, когда я пытаюсь загрузить OCX на веб-странице, мне предлагается принять объект от доверенного органа.Затем происходит сбой IE!

После первого раза / после загрузки сертификата и утверждения объекта, как только я пытаюсь запустить мой сайт с аварийным завершением ActiveX, IE 7, 8 и 9!

Я не получаю никаких сообщений об ошибках, браузер просто «уходит»!

Время развертывания, и у меня нет информации от IE относительно того, что происходит.Любая помощь будет принята с благодарностью!

1 Ответ

4 голосов
/ 20 марта 2012

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

Если в программе есть код защиты от несанкционированного доступа, его можно запустить, просто подписав файл.Например, если вы используете EurekaLog, убедитесь, что вы отключили опцию «Проверить повреждение файла (анти-взлом)», иначе ваша программа вылетит с ошибкой «Этот файл взломан» просто потому, что подпись изменила файл.

Как правило, вы должны отключить любой такой код защиты от подделки перед подписанием приложения и использовать Windows API для проверки действительности подписи.Подпись будет недействительной, если файл был подделан после того, как он был подписан.Компоненты Eldos SecureBlackBox имеют функции для проверки подписи из приложения.

Кроме того, рассмотрите возможность использования метки времени при подписании файла.Без временной отметки, когда срок действия сертификата подписи кода истекает, срок действия подписи истекает.С отметкой времени подпись остается в силе даже после истечения срока действия вашего сертификата подписи кода (если вы не отозваете сертификат).

...