mage.exe манифест подписи с сертификатом, хранящимся в AWS CloudHSM

Я пытаюсь подписать манифест, используя mage.exe с сертификатом, который хранится в Amazon CloudHSM.

У меня установлен Windows-клиент Amazon CloudHSM, который добавляет Cavium Key Storage Provider и Cavium CNG Provider провайдеры. Я могу подписать с signtool.exe используя мой сертификат в CloudHSM, но я не могу получить mage.exe работать. у меня есть mage.exe для NETFX 4.7.2, поэтому он имеет -CryptoProvider параметр.

Я попытался указать оба вышеуказанных поставщиков для -CryptoProvider:

"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\mage.exe" -Sign myapp.exe.manifest -CertHash <thumbpring> -CryptoProvider "Cavium Key Storage Provider" -KeyContainer my

Но я получаю:

Внутренняя ошибка, пожалуйста, попробуйте еще раз. Указан неверный тип провайдера.

Каковы правильные параметры для вызова mage.exe подписать манифест с поставщиком хранилища альтернативных ключей?

ПРИМЕЧАНИЕ. Сертификат должен быть в HSM. Использование сертификата в другом магазине не вариант.

ПРИМЕЧАНИЕ 2: Поскольку я могу подписать с signtool.exeсертификат доступен, CloudHSM настроен правильно и т. д. Эта проблема, по-видимому, связана с доступом к этому сертификату с помощью mage.exe,

ОБНОВЛЕНИЕ: Я использовал JetBrains dotPeek для разборки.NET Framework 4.7.2 mage.exe, экспортировал его в проект, взломал проект достаточно, чтобы его скомпилировать, и я могу подписать его взломанным mage.exe, Мне нужно было только -CertHash параметр, а не -CryptoProvider, Я не уверен, что это проблема с разрешениями, потому что кое-что из того, что я вынул для компиляции, было атрибутами сборки и делало его неподписанным.

Я не считаю это решенным, потому что я бы предпочел не использовать взломанную версию mage.exe для нашего производственного применения. Кроме того, я даже не подтвердил, что могу подписать приложение и манифесты развертывания таким образом, чтобы приложение ClickOnce могло правильно развернуться. Это просто дополнительная информация для поиска решения с "авторизованным" mage.exe,

3 ответа

Я столкнулся с тем же самым... Я считаю, что есть ошибка в MAGE

Ошибка регистрируется здесь: https://github.com/Microsoft/dotnet/issues/986

Мне тоже пришлось перекомпилировать mage и переназначить на.NET 4.7.2

Мне пришлось использовать -CertFile, -CryptoProvider и -KeyContainer, чтобы заставить его подписать, я не мог понять, как заставить -CertHash работать...

Обратите внимание, чтобы найти контейнер ключей:

Бежать

certutil-магазин мой

Затем найдите свой сертификат и затем используйте значение "Key Container = XXXXX"

У меня была аналогичная проблема с использованием мага для подписи файла манифеста. В моем случае закрытый ключ хранится в SafeNet USB eToken, однако полученная мной ошибка была другой ("Этот сертификат не содержит закрытого ключа...").
В конце концов, я заставил его работать, декомпилировав mage (используя JetBrains dotPeek), изменив одну (соответствующую) строку кода и снова перекомпилировав ее.
См. Мой комментарий на https://github.com/Microsoft/dotnet/issues/986 для получения дополнительной информации.

Мы используем mage.exe, интегрированный с AWS CloudHSM в моей компании, и он отлично работает без перекомпиляции mage. Однако для этого мы используем HSM-прокси под названием GaraSign . Подписывающий клиент общается с GaraSign, который обрабатывает всю аутентификацию, авторизацию, применение политик и т. д. В случае успеха хэш данных отправляется от клиента на сервер, который затем выгружается в HSM для подписи. Наши клиенты настроены с помощью GaraSign KSP вместо CloudHSM KSP.

Другие вопросы по тегам