Использование сертификата EV с ClickOnce

Моя компания приобрела сертификат EV у Symantec, чтобы использовать его для производимого нами программного продукта. В частности, это называется: Symantec Class 3 Extended Validation Code Signing CA - G2.

Для разработки и сборки этого продукта мы используем Visual Studio 2013, а также ClickOnce в качестве механизма публикации и установки. Проблема, с которой мы сталкиваемся, заключается в том, что ClickOnce не может применить сертификат EV, используя встроенный механизм подписи. ClickOnce прекрасно видит сертификат и позволяет нам выбрать его с помощью кнопки «Выбрать из магазина…». Он показывает всю правильную информацию в окне сертификата. Но когда мы публикуем, возникает следующая ошибка:

«Произошла ошибка при подписании: не удалось подписать bin \ Release \ app.publish \ setup.exe. Ошибка SignTool: произошла непредвиденная внутренняя ошибка ».

Обратите внимание, что мы можем использовать SignTool.exe для применения сертификата EV из командной строки, поэтому проблема не в этой программе.

У кого-нибудь был опыт работы с этой комбинацией сертификата EV и ClickOnce? Есть ли другой сертификат EV, который мы должны купить, который лучше работает с ClickOnce?


person Drew Stoddard    schedule 21.08.2014    source источник
comment
Я предполагаю, что вы получили сертификат в аппаратном eToken. Вы используете драйверы SafeNet для его использования?   -  person Max    schedule 15.09.2014
comment
Да, у нас есть аппаратный eToken, и мы используем драйверы SafeNet. Мы знаем, что они работают, потому что можем без проблем привязать сертификат EV с помощью SignTool.exe и Mage.exe.   -  person Drew Stoddard    schedule 16.09.2014
comment
SafeNet также без проблем работал с signtool и mage, за исключением подписи сертификатов ClickOnce, но изменение значения регистра, похоже, решило эту проблему.   -  person Max    schedule 16.09.2014


Ответы (2)


Несколько дней назад у меня была точно такая же проблема, и послепродажная служба Digicert смогла ее решить. Попробуйте проверить значение этого ключа реестра (в regedit):

HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Control / Cryptography / Providers / SafeNet Smart Card Key Storage Provider / Псевдонимы

Значение должно быть «Базовый криптографический провайдер eToken», а не «Базовый криптографический провайдер eToken» («p» вместо «c»).

Как сказано в комментариях, после этого изменения вам придется перезагрузиться.

Надеюсь, поможет.

person Max    schedule 16.09.2014
comment
Отлично. Спасибо, Макс. Я исправил запись в реестре на своем компьютере и, насколько я могу судить, устранил проблему. Я не уверен на 100%, потому что в моей среде изменилось так много всего, что теперь я не могу воссоздать исходный сбой. Но если это устранило проблему для вас, я считаю, что это исправит ее и в моем случае. По крайней мере, я достаточно уверен, чтобы отметить это как ответ. Спасибо за ваш ценный вклад. - person Drew Stoddard; 18.09.2014
comment
Отличный ответ. К вашему сведению, мне пришлось перезагрузить мою машину после этого изменения (я полагаю, я мог бы убить / сбросить различные SafeNet Exes, работающие в фоновом режиме). - person Simon Mourier; 09.01.2015
comment
Этот ответ спас мне жизнь! - person Zoltan; 28.04.2015

Не могу комментировать (недостаточно репутации). Я долго добирался до этой страницы, поэтому хотел добавить следующую информацию для всех, кто придет сюда после.

Полное сообщение об ошибке (для поисковых систем, обнаруживающих этот сайт) от signtool:

Ошибка SignTool: произошла непредвиденная внутренняя ошибка

Ошибка: SignerSign () не удалось. (-1073741275 / 0xc0000225)

Это происходит (для нас) только при подписании sha256. sha1 работал нормально.

Ответ @ Max (опечатка в разделе реестра верна. Это ошибка установщика SafeNet Authentication Client версии 8.2. Я изменил раздел реестра, перезагрузился, и все заработало.

Это было исправлено в версии 9.0 (которая предназначена для Win8 +).

person kinar    schedule 25.03.2016