Основной поддерживаемый способ (согласно документации здесь https://learn.microsoft.com/en-us/azure ... tegrations). похоже, используется специальная версия Signtool.exe, которая, по-видимому, загружает отдельную библиотеку MS, которая выполняет веб-запрос к ресурсу подписи в Azure. Это то, что я раньше работал, и, похоже, это то, что скрыто под всеми перечисленными альтернативами (github/Azure Devops action, powershell, sdk), но все они кажутся совершенно новыми и не имеют никакой документации/инструкций и никого. пока спрашиваю о них, и ни один из них не работает вне контекста Windows.
Я пытался использовать Wine 9 для запуска моей рабочей установки Signtool.exe из контекста Ubuntu 20.04 с чистой установкой, но Я получаю сообщение об ошибке, которое не могу понять, как устранить:
Код: Выделить всё
wine "./Microsoft.Windows.SDK.BuildTools_10.0.22621.0/signtool.exe" sign /debug /v /fd SHA256 /tr "http://timestamp.acs.microsoft.com" /td SHA256 /dlib "./Microsoft.Trusted.Signing.Client_1.0.53/Azure.CodeSigning.Dlib.dll" /dmdf "./signinfo.json" "/home/asdf.exe"
007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
00f8:err:module:import_dll Library MFC42.dll (which is needed by L"Z:\\home\\Microsoft.Windows.SDK.BuildTools_10.0.22621.0\\signtool.exe") not found
00f8:err:module:loader_init Importing dlls for L"Z:\\home\\Microsoft.Windows.SDK.BuildTools_10.0.22621.0\\signtool.exe" failed, status c0000135
В качестве обходного пути я В настоящее время я работаю над функцией Azure, которую моя сборка может вызывать, когда придет время подписывать .exe-файлы (все для того, чтобы я мог находиться в контексте Windows), но это представляет собой огромный риск для безопасности, поскольку я, по сути, просто создаю URL-адрес, который любой, кто находится за моим брандмауэром, может подписать все, что захочет.
Почему использование Wine для запуска Signtool.exe не работает? Есть ли лучший способ выполнить то, что я пытаюсь сделать, предполагая, что я не хочу переключаться на другого поставщика подписи кода и хочу продолжать использовать доверенную подпись Azure?
Подробнее здесь: https://stackoverflow.com/questions/787 ... a-linux-os