2013-04-09 2 views
13

Недавно мы приобрели сертификат Digitert для подписывания кода EV, чтобы подписать наш MSI, чтобы обойти предупреждающее сообщение Windows SmartScreen. Проблема заключается в том, что сертификат был доставлен на USB-токен, который не позволяет экспортировать закрытый ключ. Наша среда сборки находится на размещенной виртуальной машине, поэтому мы не можем подключить USB-токен к виртуальной машине хоста.Как использовать сертификат подписи EV на виртуальной машине для подписания MSI

У кого-нибудь есть решение для использования сертификата подписи кода EV на размещенной виртуальной машине? Все поставщики сертификатов доставляют этот тип сертификата на токен оборудования? Как вы подписываете код MSI в виртуальной среде с помощью этого типа Cert?

+0

У меня такой же вопрос. Какие-нибудь выводы по этому поводу? –

+0

Возможный дубликат [Автоматическая расшифровка валидации (EV) ») (http://stackoverflow.com/questions/17927895/automate-extented-validation-ev-code-signing) –

ответ

1

Сертификаты подписи кода EV необходимы для использования специального оборудования для хранения закрытого ключа. Это часть того, что делает их более дорогими и более безопасными, чем стандартные сертификаты. Мое предложение состояло в том, чтобы подписать исполняемый файл на главной машине, используя signtool.exe, как шаг после сборки.

Сертификаты подписи обычного кода не имеют требований к оборудованию, но они не являются «SmartScreen Filter Friendly» в качестве сертификатов EV.

0

Некоторые программы для виртуализации, включая VMware, позволяют перенаправлять USB-устройства.

+1

... и убедитесь, что вы подключаетесь к своему VM с vnc, а не с удаленным рабочим столом – azhrei

+0

@azhrei Знаете ли вы, почему ключ, по-видимому, отключен при использовании удаленного рабочего стола? Как только я использую консольное окно в vmware, похоже, что все в порядке (программное обеспечение для сертификата видит ключ) –

+0

@NeilVarnas Я не знаю почему - я подозреваю, что драйвер ключа явно требует (и проверяет) вас на консоли для целей безопасности – azhrei

2

У меня не было никаких проблем с нашими. Мы переключились с PFX (файла), подкрепленного стандартным сертификатом подписи кода, на сертификат подписи кода EV, подписанный с помощью USB, менее чем за 15 минут.

Я просто установить маркер устройство USB для подключения к клиента ОС в VMWare (см значки в правом нижнем углу клиентского окна OS для устройств), установлены необходимые драйверы устройств, установить параметры требовать пароль для разблокировки только один раз за сеанс, тогда было хорошо идти.

Что касается КАК подписать, вы подписываетесь так же, как и с любым другим сертификатом. Если в хранилище сертификатов ОС нет другого применимого сертификата подписи кода, , то вам даже не нужно указывать, где находится сертификат.

Я беспокоился, что у нас возникнут проблемы, но это не так. Итак, я не думаю, что вы это сделаете, и не знаете, почему у вас будут проблемы.

+0

После того, как сертификат недействителен на виртуальной машине, я могу успешно подписать сборку с помощью cmd, но каждый раз, когда агент сборки (в нашем случае Team City) пытается выполнить либо командную строку, либо вызвать командный файл с командной строкой, он возвращается с «Ошибка SignTool: не было найдено никаких сертификатов, соответствующих всем заданным критериям». Агент сборки является администратором на этом компьютере. Вы столкнулись с этим? Если нет, может быть, вы могли бы подробнее рассказать о своей настройке? –

+0

@NeilVarnas добавляет '/ debug' к вашим cmtds signtool и разрабатывает, на каком основании signtool устраняет все ваши сертификаты в случае TeamCity. Возможно, вы сможете настроить свой вызов signtool, чтобы дать подсказки для signtool относительно того, какой сертификат выбрать. – azhrei

+0

@NeilVarnas Нет, я никогда не встречал ничего подобного. Звучит как нечто специфическое для вашего агента сборки. Все мое подписание происходит через signtool.exe. –

0

Для всех, у кого была эта проблема, мы использовали VNC-сервер для подключения к виртуальной машине, на которой был токен. Он не работал над RDP только VNC.

Очевидно, что VNC похож на консольный доступ к коробке (насколько это касается RV Dongle).