Подпись кода Authenticode невероятно медленная

У нас есть утилита, которую мы создали для подписи нашего файла манифеста XBAP. Это следующий код, который он выполняет:

cert = new X509Certificate2(certFilePath, password, X509KeyStorageFlags.MachineKeySet);
SecurityUtilities.SignFile(cert, null, manifest.SourcePath);

Выполнение метода SignFile занимает более двух минут. Ранее мы использовали сертификат аутентификации Thawte для подписи нашего манифеста. После перехода на VeriSign эта проблема начала появляться. Кроме того, когда Visual Studio подписывает манифест XBAP в процессе сборки, это обычно занимает от семи до девяти минут.

Я попытался поместить закрытый ключ в локальный компьютерный магазин. Я попытался поместить промежуточный сертификат подписи кода VeriSign в хранилище промежуточных центров сертификации.

Кто-нибудь сталкивался с этим раньше и / или есть идеи, как решить эту проблему?


person Bob Wintemberg    schedule 29.06.2011    source источник


Ответы (3)


Я спросил парня ClickOnce из Microsoft о вашем вопросе (хотя он не касается C/O как такового). Он сказал, что если вы ставите метку времени на сертификате, возможно, он пытается подключиться к серверу меток времени, и это может замедлять работу. Вы указываете это в Visual Studio на одной из вкладок проекта, и оно используется во время подписания.

person RobinDotNet    schedule 17.07.2011

На самом деле вам необходимо установить сертификат на сервер в дополнение к подключению к Интернету и проверке списка отзыва сертификатов. У нас есть сервер с похожей проблемой. Выполнение метода SignFile занимало не одну или две минуты, а 10 секунд на каждый вызов и 20-30 секунд на это. После того, как я установил сертификат, метод теперь занимает около двух сотых секунды для каждого вызова... поэтому два или три вызова методов занимают доли секунды.

person Shoji Kaburagi    schedule 01.04.2014

Я считаю, что моя проблема вызвана отсутствием доступа в Интернет на сервере, на котором выполняется этот код. С помощью анализатора пакетов я заметил, что во время подписания приложение и/или Windows пытается получить доступ к списку отозванных сертификатов (CRL) и протокол статуса онлайн-сертификата (OCSP). Срок действия этих действий истек. Эта подпись кода выполнялась более одного раза, поэтому задержка увеличилась. Разрешение доступа к VeriSign через огонь должно исправить это.

person Bob Wintemberg    schedule 21.03.2012