mage.exe манифест подписи с сертификатом, хранящимся в AWS CloudHSM - PullRequest
0 голосов
/ 18 февраля 2019

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

У меня установлен клиент Amazon CloudHSM для Windows, который добавляет поставщиков 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 для подписания манифеста с поставщиком альтернативного хранилища ключей?

ПРИМЕЧАНИЕ. Сертификат must быть в 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.

1 Ответ

0 голосов
/ 27 марта 2019

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

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

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

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

Примечание для поиска контейнера ключей:

Выполните

certutil -store my

Затем найдите свой сертификат, а затем используйте «Ключ»Контейнер = XXXXX "значение

...