Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.04.2016(UTC) Сообщений: 35  Откуда: Moscow Сказал(а) «Спасибо»: 1 раз Поблагодарили: 2 раз в 2 постах
|
Необходимо, чтобы приложение, запущенное под системным пользователем, могло подписывать данные. При проверке на локальном пользователе импортирую ключевую пару - Код:/opt/cprocsp/bin/amd64/certmgr -install -pfx -file <путь к .pfx файлу> -pin <пароль к .pfx файлу>
и нормально подписываю им данные через Код:/opt/cprocsp/bin/amd64/cryptcp -sign -der -thumbprint
Но т.к. хранилище ключей локальное, то пользователь, от которого запущен сервис, не видит этих ключей и выдаёт ошибку Код:CryptCP 4.0 (c) "КРИПТО-ПРО", 2002-2018.
Утилита командной строки для подписи и шифрования файлов.
Ошибка: Сертификаты не найдены.
/dailybuildsbranches/CSP_4_0/CSPbuild/CSP/samples/CPCrypt/Certs.cpp:295: 0x2000012D
[ErrorCode: 0x2000012d]
Каким образом можно организовать глобальное хранилище или создать хранилище для системного пользователя?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.04.2016(UTC) Сообщений: 35  Откуда: Moscow Сказал(а) «Спасибо»: 1 раз Поблагодарили: 2 раз в 2 постах
|
Если использовать при импорте параметр -store: Код:/opt/cprocsp/bin/amd64/certmgr -install -store mTest -pfx -file <путь к .pfx файлу> -pin <пароль к .pfx файлу>
а потом при подписи указать Код:/opt/cprocsp/bin/amd64/cryptcp -sign -mTest -der -thumbprint ....................
то сертификат находит, а ключ нет: Код:
CryptCP 4.0 (c) "КРИПТО-ПРО", 2002-2018.
Утилита командной строки для подписи и шифрования файлов.
Будет использован следующий сертификат:
Субъект:"ООО ...................."
Действителен с 11.04.2019 14:04:03 по 11.04.2020 14:14:03
Цепочки сертификатов проверены.
Папка '/tmp/':
/tmp/9f0fe02f55c7f82efdbde227832415a6... Ошибка: Не удалось получить закрытый ключ сертификата.
/dailybuildsbranches/CSP_4_0/CSPbuild/CSP/samples/CPCrypt/DSign.cpp:442: 0x20000136
[ErrorCode: 0x20000136]
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 30.06.2016(UTC) Сообщений: 3,483   Сказал «Спасибо»: 53 раз Поблагодарили: 802 раз в 741 постах
|
Автор: lstef  Если использовать при импорте параметр -store: Код:/opt/cprocsp/bin/amd64/certmgr -install -store mTest -pfx -file <путь к .pfx файлу> -pin <пароль к .pfx файлу>
а потом при подписи указать Код:/opt/cprocsp/bin/amd64/cryptcp -sign -mTest -der -thumbprint ....................
то сертификат находит, а ключ нет: Код:
CryptCP 4.0 (c) "КРИПТО-ПРО", 2002-2018.
Утилита командной строки для подписи и шифрования файлов.
Будет использован следующий сертификат:
Субъект:"ООО ...................."
Действителен с 11.04.2019 14:04:03 по 11.04.2020 14:14:03
Цепочки сертификатов проверены.
Папка '/tmp/':
/tmp/9f0fe02f55c7f82efdbde227832415a6... Ошибка: Не удалось получить закрытый ключ сертификата.
/dailybuildsbranches/CSP_4_0/CSPbuild/CSP/samples/CPCrypt/DSign.cpp:442: 0x20000136
[ErrorCode: 0x20000136]
Здравствуйте. Ключевые контейнеры для компьютера на жестком диске должны находиться в директории: |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.04.2016(UTC) Сообщений: 35  Откуда: Moscow Сказал(а) «Спасибо»: 1 раз Поблагодарили: 2 раз в 2 постах
|
сейчас у меня в этой папки 3 хранилища, полностью идентичных по файлам - для рута (root/f4e8adee.000) - для моего пользователя (lstef/f4e8adee.000) - и глобальное (f4e8adee.000) все содержат идентичные при побитовом сравнении файлы header.key masks2.key masks.key name.key primary2.key primary.key
копирую хранилище lstef/f4e8adee.000 в www-data/f4e8adee.000 даю на него права www-data:www-data, но при запуске от апача всё равно ничего нет если я при запуске от апача, а не из консоли, указываю -mTest, то процесс подписи виснет и всё
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 30.06.2016(UTC) Сообщений: 3,483   Сказал «Спасибо»: 53 раз Поблагодарили: 802 раз в 741 постах
|
Автор: lstef  сейчас у меня в этой папки 3 хранилища, полностью идентичных по файлам - для рута (root/f4e8adee.000) - для моего пользователя (lstef/f4e8adee.000) - и глобальное (f4e8adee.000) все содержат идентичные при побитовом сравнении файлы header.key masks2.key masks.key name.key primary2.key primary.key
копирую хранилище lstef/f4e8adee.000 в www-data/f4e8adee.000 даю на него права www-data:www-data, но при запуске от апача всё равно ничего нет если я при запуске от апача, а не из консоли, указываю -mTest, то процесс подписи виснет и всё В этом случае Вам нужно хранилище ключевых контейнеров и хранилище сертификатов пользователя www-data, а не компьютера (системное). Выполните установку сертификата в хранилище my (Личное) для пользователя www-data: Код:sudo -u www-data /opt/cprocsp/bin/amd64/csptest -absorb -certs -autoprov
Затем под этим пользователем Вы сможете использовать сертификат, например, в команде: Код:sudo -u www-data /opt/cprocsp/bin/amd64/cryptcp -sign -der -thumbprint ....................
Без указания хранилища сертификатов используется хранилище my (Личное) текущего пользователя. |
|
 1 пользователь поблагодарил Александр Лавник за этот пост.
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.04.2016(UTC) Сообщений: 35  Откуда: Moscow Сказал(а) «Спасибо»: 1 раз Поблагодарили: 2 раз в 2 постах
|
Цитата:Выполните установку сертификата в хранилище my (Личное) для пользователя www-data: Тут только одна проблема - как задать в командной строке для certmgr пароль на хранилище для пользователя. Когда я устанавливал с CSP для проверки на рабочую станцию, то указал KC1, т.к. в описании было сказано, что при этом не используются gui-запросы и для установки на сервер для работы с командной строкой предпочтительнее этот вариант. Но при импорте с помощью certmgr выстреливает gtk-окно чтобы задать пароль. Пользователь www-data не может обращаться к иксам, поэтому при запуске Код:sudo -u www-data /opt/cprocsp/bin/amd64/csptest -absorb -certs -autoprov
получаю ошибку Код:Certmgr 1.1 (c) "Crypto-Pro", 2007-2018.
program for managing certificates, CRLs and stores
No protocol specified
Error while importing pfx
The keyset is not defined.
[ErrorCode: 0x80090019]
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 30.06.2016(UTC) Сообщений: 3,483   Сказал «Спасибо»: 53 раз Поблагодарили: 802 раз в 741 постах
|
Автор: lstef  Цитата:Выполните установку сертификата в хранилище my (Личное) для пользователя www-data: Тут только одна проблема - как задать в командной строке для certmgr пароль на хранилище для пользователя. Когда я устанавливал с CSP для проверки на рабочую станцию, то указал KC1, т.к. в описании было сказано, что при этом не используются gui-запросы и для установки на сервер для работы с командной строкой предпочтительнее этот вариант. Но при импорте с помощью certmgr выстреливает gtk-окно чтобы задать пароль. Пользователь www-data не может обращаться к иксам, поэтому при запуске Код:sudo -u www-data /opt/cprocsp/bin/amd64/csptest -absorb -certs -autoprov
получаю ошибку Код:Certmgr 1.1 (c) "Crypto-Pro", 2007-2018.
program for managing certificates, CRLs and stores
No protocol specified
Error while importing pfx
The keyset is not defined.
[ErrorCode: 0x80090019]
Если графика не нужна и/или она мешает, то удалите пакет для графических окон cprocsp-rdr-gui-gtk-64. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.04.2016(UTC) Сообщений: 35  Откуда: Moscow Сказал(а) «Спасибо»: 1 раз Поблагодарили: 2 раз в 2 постах
|
Спасибо, завелось всё. Были проблемы ещё с проверкой цепочки сертификатов т.к. у системного пользователя другое окружение и он не мог достучаться, но это тоже решили.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close