Atom Лента - Форум КриптоПро - Тема:Ошибка открытия контейнера (certmgr: Failed to open container) - 10Форум КриптоПро - Atom Лентаurn:https:--www-cryptopro-ru:AtomLenta:ForumKriptoPro:Tema:Oshibkaotkrytijakontejjnera(certmgr:Failedtoopencontainer)-10:1Copyright 2024 Форум КриптоПро2024-03-29T18:57:53Zhttps://www.cryptopro.ru/forum2/Images/YAFLogo.pngForum Adminhttps://www.cryptopro.ruforum@cryptopro.ruАнатолий Беляевhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=2008&name=Анатолий БеляевАнатолий Беляевhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=2008&name=Анатолий Беляевonionhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=30127&name=oniononionhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=30127&name=onionYetAnotherForum.NETurn:https:--www-cryptopro-ru:ftPosts:st1:meid39736:1Ошибка открытия контейнера (certmgr: Failed to open container)<table class="content postContainer_Alt" width="100%"><tr><td>Имя контейнера может задаваться в формате \\.\<название считывателя>\<имя контейнера> либо просто <имя контейнера>. Имя считывателя может быть, hdimage, flash, registry ... При этом если в командной строке у вас двойные кавычки то нужно дублировать слеши, если одинарные то не нужно.<br /><br />Далее вы создали закрытый ключ + запрос на сертификат и имя контейнера указали HDIMAGE\\g104.000. При этом у вас создался ключ в /var/opt/cprocsp/keys а не в папке пользователя так как вы указали опцию -km (ключ machinekeyset). При перечислении контейнеров утилитой csptest она выводит имена в формате \\.\<название считывателя>\<имя контейнера> и честно вывела вам \\.\HDIMAGE\HDIMAGE\\g104.000 (один hdimage в названии считывателя, один в имени контейнера). <br />Когда вы указывали это имя в certmgr вы использовали '' и не должны были дублировать все слеши. Правильно вот так - '\\.\HDIMAGE\HDIMAGE\\g104.000'.<br /><br /></td></tr></table>2013-06-25T11:16:15+03:002013-06-25T11:16:15+03:00Анатолий Беляев<table class="content postContainer_Alt" width="100%"><tr><td>Имя контейнера может задаваться в формате \\.\<название считывателя>\<имя контейнера> либо просто <имя контейнера>. Имя считывателя может быть, hdimage, flash, registry ... При этом если в командной строке у вас двойные кавычки то нужно дублировать слеши, если одинарные то не нужно.<br /><br />Далее вы создали закрытый ключ + запрос на сертификат и имя контейнера указали HDIMAGE\\g104.000. При этом у вас создался ключ в /var/opt/cprocsp/keys а не в папке пользователя так как вы указали опцию -km (ключ machinekeyset). При перечислении контейнеров утилитой csptest она выводит имена в формате \\.\<название считывателя>\<имя контейнера> и честно вывела вам \\.\HDIMAGE\HDIMAGE\\g104.000 (один hdimage в названии считывателя, один в имени контейнера). <br />Когда вы указывали это имя в certmgr вы использовали '' и не должны были дублировать все слеши. Правильно вот так - '\\.\HDIMAGE\HDIMAGE\\g104.000'.<br /><br /></td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid39721:1Ошибка открытия контейнера (certmgr: Failed to open container)<table class="content postContainer" width="100%"><tr><td>Проблема решена.<br />Оказывается, утилита с противоречивым названием "csptest", может создавать контейнеры.<br /><br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-markup"># Создаём ключевой контейнер:
./csptest -keyset -newkeyset -cont '\\.\HDIMAGE\TestContainer'
# Создаём запрос на сертификат:
./cryptcp -creatrqst -dn "E=test@test.ru,CN=Ivan,L=Moscow,O=Bank" -nokeygen -both -ku -cont TestContainer cert_request.req
# Устанавливаем, полученный от УЦ сертификат, в указанный ключевой контейнер:
./certmgr -inst -store uMy -file /root/certs/test_cert.cer -cont '\\.\HDIMAGE\TestContainer'</code></pre>
</div></div><br /><br />Теперь можно увидеть, что всё в порядке. Только контейнер получился не "-machinekeys":<br /><br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-markup">./csptest -keyset -enum_cont -verifycontext -fqcn
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 7712451
\\.\HDIMAGE\TestContainer
OK.
Total:
[ErrorCode: 0x00000000]</code></pre>
</div></div><br /><br />Контейнеры создаются, как и заявлено в документации, в директории /var/opt/cprocsp/keys/<Имя пользователя>/<Контейнер><br />Когда, же контейнеры создавались при генерации запроса на сертификат, они почему-то создавались без имени пользователя в пути, т.е. /var/opt/cprocsp/keys/<Контейнер>.<br /><br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-markup">./certmgr -list
Certmgr 1.0 (c) "CryptoPro", 2007-2010.
program for managing certificates, CRLs and stores
=============================================================================
1-------
Issuer : CN=CA-Test-Equifax
Subject : E=test@test.ru,CN=Ivan,L=Moscow,O=Bank
Serial : 0x72040000000073DAC255
SHA1 Hash : 0x2fc598bf1ef76c7d04ed52b1a5bb0973d96d2115
Not valid before : 24/06/2013 08:25:36 UTC
Not valid after : 24/06/2014 08:35:36 UTC
PrivateKey Link : Yes. Container : HDIMAGE\\TestCont.000\7B2A
=============================================================================
[ErrorCode: 0x00000000]</code></pre>
</div></div><br /><br />Как видите, получилось связать секретный ключ с сертификатом. ("PrivateKey Link : Yes. Container : HDIMAGE\\TestCont.000\7B2A")<br />Теперь им можно смело подписывать сообщения.</td></tr></table>2013-08-26T15:05:39+03:002013-08-26T15:05:39+03:00onion<table class="content postContainer" width="100%"><tr><td>Проблема решена.<br />Оказывается, утилита с противоречивым названием "csptest", может создавать контейнеры.<br /><br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-markup"># Создаём ключевой контейнер:
./csptest -keyset -newkeyset -cont '\\.\HDIMAGE\TestContainer'
# Создаём запрос на сертификат:
./cryptcp -creatrqst -dn "E=test@test.ru,CN=Ivan,L=Moscow,O=Bank" -nokeygen -both -ku -cont TestContainer cert_request.req
# Устанавливаем, полученный от УЦ сертификат, в указанный ключевой контейнер:
./certmgr -inst -store uMy -file /root/certs/test_cert.cer -cont '\\.\HDIMAGE\TestContainer'</code></pre>
</div></div><br /><br />Теперь можно увидеть, что всё в порядке. Только контейнер получился не "-machinekeys":<br /><br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-markup">./csptest -keyset -enum_cont -verifycontext -fqcn
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 7712451
\\.\HDIMAGE\TestContainer
OK.
Total:
[ErrorCode: 0x00000000]</code></pre>
</div></div><br /><br />Контейнеры создаются, как и заявлено в документации, в директории /var/opt/cprocsp/keys/<Имя пользователя>/<Контейнер><br />Когда, же контейнеры создавались при генерации запроса на сертификат, они почему-то создавались без имени пользователя в пути, т.е. /var/opt/cprocsp/keys/<Контейнер>.<br /><br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-markup">./certmgr -list
Certmgr 1.0 (c) "CryptoPro", 2007-2010.
program for managing certificates, CRLs and stores
=============================================================================
1-------
Issuer : CN=CA-Test-Equifax
Subject : E=test@test.ru,CN=Ivan,L=Moscow,O=Bank
Serial : 0x72040000000073DAC255
SHA1 Hash : 0x2fc598bf1ef76c7d04ed52b1a5bb0973d96d2115
Not valid before : 24/06/2013 08:25:36 UTC
Not valid after : 24/06/2014 08:35:36 UTC
PrivateKey Link : Yes. Container : HDIMAGE\\TestCont.000\7B2A
=============================================================================
[ErrorCode: 0x00000000]</code></pre>
</div></div><br /><br />Как видите, получилось связать секретный ключ с сертификатом. ("PrivateKey Link : Yes. Container : HDIMAGE\\TestCont.000\7B2A")<br />Теперь им можно смело подписывать сообщения.</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid39686:1Ошибка открытия контейнера (certmgr: Failed to open container)<table class="content postContainer_Alt" width="100%"><tr><td>Работаю под ОС Linux. Ниже изложены все мои "мытарства". Помогите пожалуйста.<br /><br />1. Я создал запрос сертификата.<br /><br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-markup">./cryptcp -creatrqst -dn 'E=some@example.com' -provtype 75 -cont 'HDIMAGE\\g104.000' -both -km test.csr
CryptCP 3.40 (c) "Crypto-Pro", 2002-2012.
Command prompt Utility for file signature and encryption.
Request is saved in file.
[ReturnCode: 0]</code></pre>
</div></div><br /><br />При этом создалась директория /var/opt/cprocsp/keys/g104.000<br /><br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-markup">ls /var/opt/cprocsp/keys/g104.000
header.key masks2.key masks.key primary2.key primary.key</code></pre>
</div></div><br /><br />2. УЦ выслал мне сертификат по запросу. Пробую его установить.<br /><br /><br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-markup">./certmgr -inst -cert -provtype 75 -file test.cer -store uMy -cont 'HDIMAGE\\g104.000'
Certmgr 1.0 (c) "CryptoPro", 2007-2010.
program for managing certificates, CRLs and stores
Install:
=============================================================================
1-------
Issuer : CN=CA-Test-Some
Subject : C=RU, E=some@example.com
Serial : 0x70040000000067B50242
SHA1 Hash : 0x5156bf6a7d13e513a7b0e9a61b9c3ed5a4a176e3
Not valid before : 20/06/2013 12:23:06 UTC
Not valid after : 20/06/2014 12:33:06 UTC
PrivateKey Link : No
=============================================================================
Failed to open container HDIMAGE\\g104.000
[ErrorCode: 0x00000002]</code></pre>
</div></div><br /><br />certmgr почему-то не видит контейнер. Пробовал вариант -cont '\\\\.\\HDIMAGE\\g104.000' и -cont '\\.\HDIMAGE\g104.000'<br />Результаты "Failed to open container \\.\HDIMAGE\g104.000" и "Failed to open container \.HDIMAGEg104.000" соответственно. (Ну последний явно неверный)<br /><br />Настораживает следующее:<br /><br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-markup">./csptest -keyset -enum_cont -verifycontext -fqcn -machinekeys
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 31665859
\\.\HDIMAGE\HDIMAGE\\g103.000
\\.\HDIMAGE\HDIMAGE\\g100.000
\\.\HDIMAGE\HDIMAGE\\exp.000
\\.\HDIMAGE\HDIMAGE\\g102.000
\\.\HDIMAGE\HDIMAGE\\g101.000
\\.\HDIMAGE\HDIMAGE\\g104.000
OK.
Total:
[ErrorCode: 0x00000000]</code></pre>
</div></div><br /><br /><br />Почему-то дублируется HDIMAGE в пути. Адрес '\\\\.\\HDIMAGE\\HDIMAGE\\g104.000' так же пробовал. Результат - тот же.<br /><br />С лицензией - порядок:<br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-markup">./cpconfig -license -view
Server license:
36360-U0030-01C97-HQ92Y-1EY1K
Expires: 2 month(s) 14 day(s)
Client license:
36360-U0030-01C97-HQ92Y-1EY1K
Expires: 2 month(s) 14 day(s)</code></pre>
</div></div></td></tr></table>2013-06-21T13:12:14+03:002013-06-21T13:12:14+03:00onion<table class="content postContainer_Alt" width="100%"><tr><td>Работаю под ОС Linux. Ниже изложены все мои "мытарства". Помогите пожалуйста.<br /><br />1. Я создал запрос сертификата.<br /><br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-markup">./cryptcp -creatrqst -dn 'E=some@example.com' -provtype 75 -cont 'HDIMAGE\\g104.000' -both -km test.csr
CryptCP 3.40 (c) "Crypto-Pro", 2002-2012.
Command prompt Utility for file signature and encryption.
Request is saved in file.
[ReturnCode: 0]</code></pre>
</div></div><br /><br />При этом создалась директория /var/opt/cprocsp/keys/g104.000<br /><br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-markup">ls /var/opt/cprocsp/keys/g104.000
header.key masks2.key masks.key primary2.key primary.key</code></pre>
</div></div><br /><br />2. УЦ выслал мне сертификат по запросу. Пробую его установить.<br /><br /><br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-markup">./certmgr -inst -cert -provtype 75 -file test.cer -store uMy -cont 'HDIMAGE\\g104.000'
Certmgr 1.0 (c) "CryptoPro", 2007-2010.
program for managing certificates, CRLs and stores
Install:
=============================================================================
1-------
Issuer : CN=CA-Test-Some
Subject : C=RU, E=some@example.com
Serial : 0x70040000000067B50242
SHA1 Hash : 0x5156bf6a7d13e513a7b0e9a61b9c3ed5a4a176e3
Not valid before : 20/06/2013 12:23:06 UTC
Not valid after : 20/06/2014 12:33:06 UTC
PrivateKey Link : No
=============================================================================
Failed to open container HDIMAGE\\g104.000
[ErrorCode: 0x00000002]</code></pre>
</div></div><br /><br />certmgr почему-то не видит контейнер. Пробовал вариант -cont '\\\\.\\HDIMAGE\\g104.000' и -cont '\\.\HDIMAGE\g104.000'<br />Результаты "Failed to open container \\.\HDIMAGE\g104.000" и "Failed to open container \.HDIMAGEg104.000" соответственно. (Ну последний явно неверный)<br /><br />Настораживает следующее:<br /><br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-markup">./csptest -keyset -enum_cont -verifycontext -fqcn -machinekeys
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 31665859
\\.\HDIMAGE\HDIMAGE\\g103.000
\\.\HDIMAGE\HDIMAGE\\g100.000
\\.\HDIMAGE\HDIMAGE\\exp.000
\\.\HDIMAGE\HDIMAGE\\g102.000
\\.\HDIMAGE\HDIMAGE\\g101.000
\\.\HDIMAGE\HDIMAGE\\g104.000
OK.
Total:
[ErrorCode: 0x00000000]</code></pre>
</div></div><br /><br /><br />Почему-то дублируется HDIMAGE в пути. Адрес '\\\\.\\HDIMAGE\\HDIMAGE\\g104.000' так же пробовал. Результат - тот же.<br /><br />С лицензией - порядок:<br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-markup">./cpconfig -license -view
Server license:
36360-U0030-01C97-HQ92Y-1EY1K
Expires: 2 month(s) 14 day(s)
Client license:
36360-U0030-01C97-HQ92Y-1EY1K
Expires: 2 month(s) 14 day(s)</code></pre>
</div></div></td></tr></table>