Аутентификация кода подписи невероятно медленно - PullRequest
2 голосов
/ 29 июня 2011

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

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

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

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

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

Ответы [ 3 ]

3 голосов
/ 17 июля 2011

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

0 голосов
/ 01 апреля 2014

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

0 голосов
/ 21 марта 2012

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

...