Re: Использование signtool c Рутокен ЭЦП 3.0 с не экспортируемым сертифика

Доброго времени суток!
Пришлите ,пожалуйста, инструкцию по конфигурации процесса подписи без ввода Pin

Re: Использование signtool c Рутокен ЭЦП 3.0 с не экспортируемым сертифика

Николай Киблицкий пишет:

Здравствуйте eie, ответил вам на почту.

Спасибо, получилось подписывать вручную через командную строку. Но вот если запускать скрипт подписи через gitlab-ci (сервер с токеном используется как раннер гитлаба для сборки), то получаю ошибку "SignTool Error: No certificates were found that met all the given criteria.", это та же ошибка, как если бы пытаться запускать скрипт по rdp-сессии.
Подскажите, пожалуйста, как это можно обойти? 
команда для подписи использована такая:

$ signtool sign /a /tr http://timestamp.globalsign.com/tsa/r6advanced1 /td SHA256 /fd SHA256 file.exe

Re: Использование signtool c Рутокен ЭЦП 3.0 с не экспортируемым сертифика

eie, добрый день.
Проблема в том, что gitlab-ci скорее всего у вас запускается как служба. При этом в "личном хранилище" сертификатов этой службы не установлен нужный сертификат.
Можно попробовать запустить службу от имени того пользователя, из-под которого вы регистрировали сертификат.
А вот при подписи по rdp проблем быть не должно, если токен подключен к тому компьютеру, с которого вы подключаетесь к серверу.
Если токен подключен к серверу, а вы подключаетесь к сеансу по rdp, такая схема работать не будет.

(2024-03-15 14:57:34 отредактировано eie)

Re: Использование signtool c Рутокен ЭЦП 3.0 с не экспортируемым сертифика

Аверченко Кирилл, спасибо, сделал запуск службы от имени нужного пользователя.
Теперь ошибка такая:

$ signtool sign /a /tr http://timestamp.globalsign.com/tsa/r6advanced1 /td SHA256 /fd SHA256 file.exe
Done Adding Additional Store
SignTool Error: The specified private key container was not found.

Токен подключен к серверу (раннеру).

Re: Использование signtool c Рутокен ЭЦП 3.0 с не экспортируемым сертифика

В момент запуска раннера вы подключены к серверу по RDP?

Re: Использование signtool c Рутокен ЭЦП 3.0 с не экспортируемым сертифика

Аверченко Кирилл пишет:

В момент запуска раннера вы подключены к серверу по RDP?

Нет, по rdp не подключен..

Re: Использование signtool c Рутокен ЭЦП 3.0 с не экспортируемым сертифика

Есть возможность подключиться локально нужным пользователем к серверу и проверить, что сертификат зарегистрирован на вкладке Сертификаты Панели управления Рутокен?
А так же добавить в строку подписи /sha1 <отпечаток сертификата>

Re: Использование signtool c Рутокен ЭЦП 3.0 с не экспортируемым сертифика

Аверченко Кирилл пишет:

Есть возможность подключиться локально нужным пользователем к серверу и проверить, что сертификат зарегистрирован на вкладке Сертификаты Панели управления Рутокен?

Да, проверил, сертификат зарегистрирован:
https://forum.rutoken.ru/uploads/images/2024/03/41e3965395670a2345983c04e3fcb1df.jpg

А так же добавить в строку подписи /sha1 <отпечаток сертификата>

К сожалению, ситуация не изменилась, отпечаток копировал отсюда:
https://forum.rutoken.ru/uploads/images/2024/03/6f7905ad1f6700fbdb087794ed2dede3.jpg

Ошибка в гитлабе та же:
https://forum.rutoken.ru/uploads/images/2024/03/f6f95e60ca5e5594cb332d3298208d29.jpg

Re: Использование signtool c Рутокен ЭЦП 3.0 с не экспортируемым сертифика

eie, параметр /a выбирает сертификат подписи автоматически.
Без него, с указанием конкретного сертификата через /sha1 так же будет ошибка?

Re: Использование signtool c Рутокен ЭЦП 3.0 с не экспортируемым сертифика

Аверченко Кирилл, добрый день. К сожалению, да, ошибка та же.
Попробовал такие варианты:

$ signtool sign /tr http://timestamp.globalsign.com/tsa/r6advanced1 /td SHA256 /fd SHA256 /sha1 "отпечаток" /v file.exe
$ signtool sign /sha1 "отпечаток" /fd SHA256 /v file.exe

Как видно, еще добавлял ключ /v, чтобы увидеть подробности, но в итоге в обоих случаях вывод у команд такой:

The following certificate was selected:
Done Adding Additional Store
SignTool Error: The specified private key container was not found.

А если те же команды выполнять локально на хосте вручную не через гитлаб, то подробный вывод будет такой:

The following certificate was selected:
    Issued to: *****
    Issued by: GlobalSign GCC R45 CodeSigning CA 2020
    Expires:   Fri Feb 28 16:56:00 2025
    SHA1 hash: ****************

Done Adding Additional Store
Successfully signed: C:\Temp\test-app\file.exe

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

Re: Использование signtool c Рутокен ЭЦП 3.0 с не экспортируемым сертифика

eie, видимо есть какая-то проблема именно в режиме запуска скрипта.
Возможно, не хватает каких-то прав у службы gitlab.
Возможно, не хватает каких-то прав у службы Смарткарт.
Передам проблему нашим разработчикам, возможно, они подскажут какой-то вариант решения проблемы.

Re: Использование signtool c Рутокен ЭЦП 3.0 с не экспортируемым сертифика

Аверченко Кирилл, eie, похоже, что подпись работает только при наличии графической сесссии у пользователя.

(2024-03-19 10:51:13 отредактировано AntonPlotnikov)

Re: Использование signtool c Рутокен ЭЦП 3.0 с не экспортируемым сертифика

КриптоПРО умеет использовать токены из службы. Значит, дело в драйверах. Прошу разработчиков добавить эту задачу в беклог. К сожалению, с прошлого год все сертификаты подписи кода идут только на токенах, так что озвученная проблема критически важна для компаний-разработчиков ПО.

Re: Использование signtool c Рутокен ЭЦП 3.0 с не экспортируемым сертифика

Приобрел и установил ключ для подписывания кода, установил сертификат в хранилище, подписываю с помощью signtool

signtool.exe sign /v /sha1 d48...77 /fd sha256 C:\Temp\Sign2024\AccessDeviceManager.dll

После запуска у меня каждый раз запрашивает PIN на токен, после ввода PIN успешно подписывает.
Прошу сообщить - как подписывать в автоматическом режиме при сборке продукта, без ввода PIN.

Заранее спасибо.

Re: Использование signtool c Рутокен ЭЦП 3.0 с не экспортируемым сертифика

AntonPlotnikov, мы занимаемся поиском решения.