Сбой подписания исполняемых файлов внутри контейнера Docker - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь подписать файлы .exe и .dll внутри Gitlab Pipeline с настройкой docker-windows, используя docker image:
mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2019

Я пытаюсь вызвать эти команды:
> sn.exe -R myfile.exe myKey.snk
> signtool.exe sign /v /f myCert.p12 /p myPassword /fd sha256 /tr "http://sha256timestamp.ws.symantec.com/sha256/timestamp" /td sha256 myFile.exe

При локальном выполнении этого на моей машине файлы успешно подписываются:

> sn.exe -R myfile.exe myKey.snk
Microsoft (R) .NET Framework Strong Name Utility  Version 4.0.30319.0
Copyright (c) Microsoft Corporation.  All rights reserved.

Assembly 'myFile.exe' successfully re-signed
> signtool.exe sign /v /f myCert.p12 /p myPassword /fd sha256 /tr "http://sha256timestamp.ws.symantec.com/sha256/timestamp" /td sha256 myFile.exe
The following certificate was selected:
    Issued to: someone
    Issued by: some-private-ca
    Expires:   Fri Aug 28 09:40:11 2020
    SHA1 hash: hash

Done Adding Additional Store
Successfully signed: myFile.exe

Number of files successfully Signed: 1
Number of warnings: 0
Number of errors: 0

Однако, используя конвейер Gitlab и Strong Name Tool (sn.exe) и signtool.exe fail:

> sn.exe -R myfile.exe myKey.snk
Microsoft (R) .NET Framework Strong Name Utility  Version 4.0.30319.0
Copyright (c) Microsoft Corporation.  All rights reserved.
Failed to re-sign the assembly -- Error code: 80131701
> signtool.exe sign /v /f myCert.p12 /p myPassword /fd sha256 /tr "http://sha256timestamp.ws.symantec.com/sha256/timestamp" /td sha256 myFile.exe
The following certificate was selected:
Done Adding Additional Store

Мне не удалось выяснить, к какому коду ошибки 80131701 относится.
В некоторых случаях люди получали код ошибки на System.Runtime.InteropServices.COMException (0x80131701).

Может ли это быть вызвано отсутствием сертификата внутри docker образа, который присутствует на моем компьютере?

...