Как исправить «ошибку, возникшую при попытке загрузить сертификат подписи из» файла PFX? - PullRequest
2 голосов
/ 21 декабря 2011

У меня есть signtool.exe на Windows XP Professional с .NET 1.1.Версия, отображаемая в диалоговом окне свойств, содержит 5.2.3790.2568.

У меня также установлен Cygwin с OpenSSH на той же машине.В любом случае, когда я запускаю инструмент локально - все в порядке, соблюдайте:

D:\WORK\workspace>type 1.cmd
d:\work\workspace\VE\CodeSign\signtool.exe sign /f d:\work\workspace\VE\CodeSign\Shunra.pfx /p "shunrail" /t http://timestamp.verisign.com/scripts/tim
stamp.dll /du "www.shunra.com" /v "d:\work\workspace\VE\ShunraInstallationServices\lib\net\Release\ShunraInstallationServices.dll"

D:\WORK\workspace>1.cmd

D:\WORK\workspace>d:\work\workspace\VE\CodeSign\signtool.exe sign /f d:\work\workspace\VE\CodeSign\Shunra.pfx /p "shunrail" /t http://timestamp.verisi
gn.com/scripts/timstamp.dll /du "www.shunra.com" /v "d:\work\workspace\VE\ShunraInstallationServices\lib\net\Release\ShunraInstallationServices.dll"
The following certificate was selected:
    Issued to: Shunra Software Ltd.
    Issued by: VeriSign Class 3 Code Signing 2009-2 CA
    Expires:   6/3/2013 1:59:59
    SHA1 hash: DE4A79909D95FCFB16DA8BFE4251C5FC88659FFA

Done Adding Additional Store

Attempting to sign: d:\work\workspace\VE\ShunraInstallationServices\lib\net\Release\ShunraInstallationServices.dll
Successfully signed and timestamped: d:\work\workspace\VE\ShunraInstallationServices\lib\net\Release\ShunraInstallationServices.dll

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

D:\WORK\workspace>

Теперь я пытаюсь запустить ту же команду с другого компьютера через SSH.Обратите внимание:

markk@Dev-Builder /cygdrive/d
$ ssh builder@vm-builder /cygdrive/c/WINDOWS/system32/cmd.exe /c d:\\\\WORK\\\\workspace\\\\1.cmd

C:\cygwin\home\builder>d:\work\workspace\VE\CodeSign\signtool.exe sign /f d:\work\workspace\VE\CodeSign\Shunra.pfx /p "s
hunrail" /t http://timestamp.verisign.com/scripts/timstamp.dll /du "www.shunra.com" /v "d:\work\workspace\VE\ShunraInsta
llationServices\lib\net\Release\ShunraInstallationServices.dll"

Number of files successfully Signed: 0
Number of warnings: 0
Number of errors: 1
SignTool Error: IStore2::Load returned error: 0x80090345
        The requested operation requires delegation to be enabled on the machine.
SignTool Error: An error occurred while attempting to load the signing
        certificate from: d:\work\workspace\VE\CodeSign\Shunra.pfx

markk@Dev-Builder /cygdrive/d
$

Пользователь, использованный в обоих случаях, один и тот же.Действительно, на первой машине:

D:\WORK\workspace>echo %USERNAME% %USERDOMAIN%
builder SHUNRANET

D:\WORK\workspace>c:\utils\PsLoggedon.exe

PsLoggedon v1.34 - See who's logged on
Copyright (C) 2000-2010 Mark Russinovich
Sysinternals - www.sysinternals.com

Users logged on locally:
     11/21/2011 4:53:01         SHUNRANET\builder

No one is logged on via resource shares.

D:\WORK\workspace>

А теперь на второй машине те же команды через SSH:

markk@Dev-Builder /cygdrive/d
$ ssh builder@vm-builder /cygdrive/c/WINDOWS/system32/cmd.exe /c echo %USERNAME% %USERDOMAIN%
builder SHUNRANET

markk@Dev-Builder /cygdrive/d
$ ssh builder@vm-builder /cygdrive/c/utils/PsLoggedon.exe
Users logged on locally:
     11/21/2011 4:53:01         SHUNRANET\builder

No one is logged on via resource shares.

PsLoggedon v1.34 - See who's logged on
Copyright (C) 2000-2010 Mark Russinovich
Sysinternals - www.sysinternals.com


markk@Dev-Builder /cygdrive/d
$

Что происходит?

Редактировать

Я вставил команду pause в пакетный файл 1.cmd, что позволило мне открыть диалоговое окно свойств для соответствующего процесса cmd.exe в Process Explorer.История, рассказанная на вкладке «Безопасность» для локально запускаемого cmd.exe, отличается от истории для cmd.exe, запускаемой удаленно через SSH.

Вкладка «Безопасность» для локально запускаемого cmd.exe (мне пришлось объединитьзначения привилегий, потому что пользовательский интерфейс не позволял изменить размер этой части окна):

Enter image description here

Теперь тот же диалог для cmd.exe запускается через SSH с другого компьютера:

Enter image description here

1 Ответ

1 голос
/ 22 декабря 2011

Я нашел сообщение Re: привилегии сеанса Cygwin ssh отличаются от привилегий консоли? , в котором говорится:

Суть в том, если вынужны все права доступа пользователя, используйте аутентификацию по паролю

И действительно, signtool.exe успешно выполняется после того, как я изменил конфигурацию ssh на целевой машине, чтобы запросить пароль пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...