31.01.2007 12:00:17Ошибка ErrorCode: 0x80092004 при установке сертификата Ответов: 23
Виталий
Устнановка сертификата веб-сервера (в формате Base 64) в хранилище
my пользователя, от имени которого будет осуществляться его запуск.
При выполнении команды
/usr/CPROcsp/bin/cryptcp -instcert /home/my/certnew.cer
и после выбора контейнера происходит следующая ошибка:
===============================================================

CryptCP 3.00 (c) "Crypto-Pro", 2002-2003.
Command prompt Utility for data protection.
-instcert - Install issued certificate from PKCS #7 file.
Please, choose container (type its number and press [ENTER]).

#1: tlsserver
Number:Error: Объект или свойство не найдено. (0x80092004)
[ErrorCode: 0x80092004]

================================================================


в storeman до этого из под root в хранилище root был добавлен
сертификат в DER кодировке полученный из тестового УЦ.

ОС: RedHat 9.0
версия CSP 3.0

От чего может возникать подобная ошибка и какие возможны способы ее
устранения?
 
Ответы:
31.01.2007 13:53:39Василий
Ответил на email.
01.10.2007 15:02:06Дима
Аналогичная проблема.
Как ее решить?
01.10.2007 16:49:34Василий
Можно подробнее -
1. Как делался запрос на сертификат?
Т.е. с этой ли машины, если да - под этим ли пользователем, если да - какой утилитой, если это cryptcp - с какими параметрами?

2. Как запрос обрабавтывался, в какой кодировке готовый сертификат?

3. Установлен ли сертификат ЦС?
01.10.2007 17:08:17Дима
1. Запрос делался на этом же компьютере, этим же пользователем, с помощью утилиты cryptcp: cryptcp -creatrqst /tmp/testpostserver1.req -cont "\\\\.\\hdimage\\testpostserver1" -dn "CN=testpostserver" -provtype 75 -exprt -both -km -certusage "1.2.643.2.2.34.2"
2. Запрос обрабатывался в АРМ-е администратора УЦ КриптоПро. Сертификат в base64, пробовал и в DER кодировке.
3. Сертификат ЦС установлен.
Сертификат пытаюсь установить с помощью вот такой команды: /usr/CPROcsp/bin/cryptcp -instcert -provtype 75 -km -dm /tmp/testpostserver1_b64.cer
01.10.2007 18:42:46Василий
Ясно, спасибо.
Добавьте в команду установки имя контейнера (с префиксом)
01.10.2007 18:45:34Дима
Я уже пробовал так делать.
/usr/CPROcsp/bin/cryptcp -instcert -provtype 75 -cont "\\\\.\\hdimage\\testpostserver1" -km -dm /tmp/testpostserver1_b64.cer
Ошибка та же.
02.10.2007 10:57:50Василий
А это точно контейнер компьютера (а не пользователя)?

Т.е. он перечисляется при:
csptest -keyset -enum_containers -verifycontext -fqcn -machine
?
02.10.2007 11:19:52Дима
Точно.
./csptest -keyset -enum_containers -verifycontext -fqcn -machine
CSP (Type:71) v3.0.3303 KC1 Release OS:Linux CPU:IA32 FastCode:READY,ENABLED.
CSP (Type:75) v3.0.3303 KC1 Release OS:Linux CPU:IA32 FastCode:READY,ENABLED.
CryptAcquireContext succeeded.HCRYPTPROV: 134664256
\\.\HDIMAGE\testpostserver1
OK.
Total:
[ErrorCode: 0x00000000]
02.10.2007 12:05:39Василий
И для контроля что выводит:
/usr/CPROcsp/bin/csptest -keyset -check -cont "\\\\.\\hdimage\\testpostserver1" -machine
?
Требуется ли пароль?
02.10.2007 12:16:19Дима
Пароль не требуется.
/usr/CPROcsp/bin/csptest -keyset -check -cont "\\\\.\\hdimage\\testpostserver1" -machine
CSP (Type:71) v3.0.3303 KC1 Release OS:Linux CPU:IA32 FastCode:READY,ENABLED.
CSP (Type:75) v3.0.3303 KC1 Release OS:Linux CPU:IA32 FastCode:READY,ENABLED.
====CryptoPro CSP====
Validity of this evaluation version of CryptoPro CSP expires in 30 days.

You can get license from your dealer or contact Crypto-Pro (http://www.cryptopro.ru/).
CryptAcquireContext succeeded.HCRYPTPROV: 134664256
CryptGetProvParam succeeded.
Provider name: Crypto-Pro GOST R 34.10-2001 KC1 CSP
A crypto context has been acquired and
The name on the key container is "testpostserver1"

No signature key is available.
An exchange key exists. HCRYPTKEY: 0x808dbc0
Check key passed.
Everything is OK.
A an exchange key
exist in the "testpostserver1" key container.
Total:
[ErrorCode: 0x00000000]
02.10.2007 12:22:32Василий
Всё хорошо.

Такой вопрос - с помощью storeman не пробовали установить?
02.10.2007 12:26:46Дима
Пробовал.
./storeman
c[r]l, [c]ert, [u]ser, [q]uitc
Store:my
my [l]ist, [d]el, [e]xtract, [a]dd, [b]ack, q[uit]l
my [l]ist, [d]el, [e]xtract, [a]dd, [b]ack, q[uit]a
File name:/tmp/testpostserver1.cer
Key name ([s]kip):"\\\\.\\hdimage\\testpostserver1"
Key type: [s]ignature or key[e]xchange:e
CertStore_Add failed.
02.10.2007 13:06:50Василий
Как раз там лучше без кавычек и без удвоения слешей
02.10.2007 13:12:08Дима
То же самое:
storeman
c[r]l, [c]ert, [u]ser, [q]uitc
Store:my
my [l]ist, [d]el, [e]xtract, [a]dd, [b]ack, q[uit]l
my [l]ist, [d]el, [e]xtract, [a]dd, [b]ack, q[uit]a
File name:/tmp/testpostserver1.cer
Key name ([s]kip):\\.\hdimage\testpostserver1
Key type: [s]ignature or key[e]xchange:e
CertStore_Add failed.
my [l]ist, [d]el, [e]xtract, [a]dd, [b]ack, q[uit]l
my [l]ist, [d]el, [e]xtract, [a]dd, [b]ack, q[uit]q
02.10.2007 13:20:45Василий
Ок, проверьте права на чтение-запись для пользователя, под которым Вы запускаете на само хранилище (как папку):
/var/CPROcsp/users/stores/my
02.10.2007 13:33:54Дима
Я запускаю под root.
В каталоге stores нет папки my, есть только файл my.sto.
Содержимое папки stores:
drwxrwxrwx 2 root root 128 2007-10-01 11:51 .
drwxrwxrwx 6 root root 176 2007-10-02 12:13 ..
-rw-r--r-- 1 root root 20 2007-10-02 12:24 my.sto
-rw-r--r-- 1 root root 0 2007-10-01 11:51 request.sto
-rw-r--r-- 1 root root 891 2007-10-01 16:59 root.sto
02.10.2007 14:28:33Василий
Извиняюсь, конечно же, my.sto.

Для контроля давайте так:
сделайте новый запрос
/usr/CPROcsp/bin/cryptcp -creatrqst /tmp/testpostserver2.req -cont "\\\\.\\hdimage\\testpostserver2" -dn "CN=testpostserver" -provtype 75 -exprt -both -km -certusage "1.2.643.2.2.34.2"

и установите сертификат с указанием имени контейнера сразу:
/usr/CPROcsp/bin/cryptcp -instcert -provtype 75 -cont "\\\\.\\hdimage\\testpostserver2" -km -dm /tmp/testpostserver2_b64.cer
02.10.2007 15:17:50Дима
Не удалось.
/usr/CPROcsp/bin/cryptcp -instcert -provtype 75 -cont "\\\\.\\hdimage\\testpostserver2" -km -dm /tmp/testpostserver2_b64.cer
CryptCP 3.00 (c) "Crypto-Pro", 2002-2003.
Command prompt Utility for data protection.
-instcert - Install issued certificate from PKCS #7 file.
Error: ������ ��� �������� �� �������. (0x80092004)
[ErrorCode: 0x80092004]
02.10.2007 15:36:21Василий
Ясно. Значит, это ошибка при работе с хранилищем компьютера в утилитах storeman и cryptcp из состава CSP 3.0.

В версии 3.6 storeman значительно переделан, и имеется под названием certmgr. Там ошибок быть не должно.

02.10.2007 15:40:16Дима
Можно ли отдельно установить утилиту certmgr из дистрибутива 3.6 без переустановки КриптоПро 3.0 и будет ли она корректно работать? Очень не хочется сейчас переустанавливать КриптоПро на сервере.
Если можно, то где ее можно взять.
02.10.2007 16:43:01Василий
Довольно сомнительно, что её можно заставить работать в рамках CSP 3.6.

Такой вопрос - а насколько обязательно контейнер и сертификат ставить именно в хранилище компьютера?
02.10.2007 17:20:41Дима
В принципе не обязательно именно в хранилище компьютера их ставить.
Нужно чтобы 2 разных пользователя имели доступ к одному и тому же контейнеру. Например, web-сервер должен иметь доступ (т.е. пользователь apache) и скрипт, который запускается из командной строки (под другим пользователем).
Как этого добиться?
Я пробовал скопировать контейнер из каталога одного пользователя в каталог другого, но у меня не получилось установить сертификат для второго пользователя с привязкой к контейнеру с закрытым ключем.
Как это можно сделать?
И как можно удалить созданные контейнеры? Достаточно удалить папку с контейнером?
02.10.2007 17:54:50Василий
Удалить можно так:
csptest -keyset -deletekeyset -container имя

Скопировать можно в папку каждого пользователя
/var/CPROcsp/keys/Имя_пользователя

Для пользовательских контейнеров должен работать storeman.