| BlackIronPiton |
|
|
Статус: Новичок Группы: Участники Сказал(а) «Спасибо»: 1 раз | Добрый день! При импорте закрытого ключа(выдан сертифицированным УЦ) выходит ошибка: В чем может быть причина? Информация о системе: |
![]() | |
| Андрей Писарев |
|
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 452 раз | Здравствуйте. С помощью какой версии КриптоПРО CSP делался pfx? |
| Техническую поддержку оказываем тут | |
![]() | WWW |
| BlackIronPiton |
|
|
Статус: Новичок Группы: Участники Сказал(а) «Спасибо»: 1 раз | Версия аналогичная: |
![]() | |
| Андрей Писарев |
|
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 452 раз | Здравствуйте. Попробуйте на проблемном ПК получить тестовый сертификат Есть ошибка? |
| Техническую поддержку оказываем тут | |
![]() | WWW |
| BlackIronPiton |
|
|
Статус: Новичок Группы: Участники Сказал(а) «Спасибо»: 1 раз | Добрый день! pfx сформирован, при импорте предлагает выбрать носитель/реестр, шаг на котором выходила ошибка проходит успешно. Отредактировано пользователем 18 мая 2016 г. 15:38:02(UTC) |
![]() | |
| Андрей Писарев |
|
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 452 раз | Автор: BlackIronPiton Версия аналогичная: Сверьте информацию еще раз. Еще есть вариант использовать: Цитата: Утилита для импорта транспортных контейнеров PKCS#12 в контейнеры КриптоПро CSP |
| Техническую поддержку оказываем тут | |
![]() | WWW |
| BlackIronPiton |
|
|
Статус: Новичок Группы: Участники Сказал(а) «Спасибо»: 1 раз | Да сверил еще раз версии CSP — одинаковые. Вопрос решен. Спасибо! |
![]() | |
| Пользователи, просматривающие эту тему |
| Guest |
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Добрый день, исправил код текущей ветки OpenSC для импорта закрытых ключей GOST R3410 в рутокен, изменения вносились согласно документации на pkcs11 (openoasis) и rutoken.
Вызываю так:
./src/tools/pkcs11-tool —module /usr/lib/librtpkcs11ecp.so -l -E gost -y privkey -w key.der —slot 0 —id 65536
Пробовал указывать другие механизмы, эффект одинаковый:
error: PKCS11 function C_CreateObject failed: rv = CKR_TEMPLATE_INCONSISTENT (0xd1)
В документации указано что ошибка модет возникать в том числе при не поддерживаемом типе ключей для импорта.
diff --git a/src/tools/pkcs11-tool.c b/src/tools/pkcs11-tool.c
index 8aa1cff..d4fe730 100644
--- a/src/tools/pkcs11-tool.c
+++ b/src/tools/pkcs11-tool.c
@@ -50,6 +50,7 @@
#include <openssl/asn1t.h>
#include <openssl/rsa.h>
#include <openssl/pem.h>
+#include <openssl/engine.h>
#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_EC) && !defined(OPENSSL_NO_ECDSA)
#include <openssl/ec.h>
#include <openssl/ecdsa.h>
@@ -179,6 +180,7 @@ static const struct option options[] = {
{ "usage-sign", 0, NULL, OPT_KEY_USAGE_SIGN },
{ "usage-decrypt", 0, NULL, OPT_KEY_USAGE_DECRYPT },
{ "usage-derive", 0, NULL, OPT_KEY_USAGE_DERIVE },
+ { "engine", 1, NULL, 'E' },
{ "write-object", 1, NULL, 'w' },
{ "read-object", 0, NULL, 'r' },
{ "delete-object", 0, NULL, 'b' },
@@ -244,6 +246,7 @@ static const char *option_help[] = {
"Specify 'sign' key usage flag (sets SIGN in privkey, sets VERIFY in pubkey)",
"Specify 'decrypt' key usage flag (RSA only, set DECRYPT privkey, ENCRYPT in pubkey)",
"Specify 'derive' key usage flag (EC only)",
+ "Set SSL engine provider",
"Write an object (key, cert, data) to the card",
"Get object's CKA_VALUE attribute (use with --type)",
"Delete an object (use with --type cert/data/privkey/pubkey/secrkey)",
@@ -291,6 +294,7 @@ static int opt_slot_index_set = 0;
static CK_MECHANISM_TYPE opt_mechanism = 0;
static int opt_mechanism_used = 0;
static const char * opt_file_to_write = NULL;
+static const char * opt_engine = NULL;
static const char * opt_object_class_str = NULL;
static CK_OBJECT_CLASS opt_object_class = -1;
static CK_BYTE opt_object_id[100], new_object_id[100];
@@ -529,6 +533,7 @@ int main(int argc, char * argv[])
#endif
int need_session = 0;
int opt_login = 0;
+ int do_set_engine = 0;
int do_init_token = 0;
int do_init_pin = 0;
int do_change_pin = 0;
@@ -536,7 +541,7 @@ int main(int argc, char * argv[])
int action_count = 0;
int do_generate_random = 0;
CK_RV rv;
-
+ ENGINE *eng = NULL;
#ifdef _WIN32
char expanded_val[PATH_MAX];
DWORD expanded_len;
@@ -547,24 +552,8 @@ int main(int argc, char * argv[])
util_fatal("Cannot set FMODE to O_BINARY");
#endif
-#ifdef ENABLE_OPENSSL
-#if (OPENSSL_VERSION_NUMBER >= 0x00907000L && OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER)
- OPENSSL_config(NULL);
-#endif
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
- OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS
- | OPENSSL_INIT_ADD_ALL_CIPHERS
- | OPENSSL_INIT_ADD_ALL_DIGESTS
- | OPENSSL_INIT_LOAD_CONFIG,
- NULL);
-#else
- /* OpenSSL magic */
- OpenSSL_add_all_algorithms();
- OPENSSL_malloc_init();
-#endif
-#endif
while (1) {
- c = getopt_long(argc, argv, "ILMOTa:bd:e:hi:klm:o:p:scvf:ty:w:z:r",
+ c = getopt_long(argc, argv, "ILMOTa:bd:e:hi:klm:o:p:scvf:ty:w:z:rE:",
options, &long_optind);
if (c == -1)
break;
@@ -612,6 +601,12 @@ int main(int argc, char * argv[])
opt_file_to_write = optarg;
action_count++;
break;
+ case 'E':
+ need_session |= NEED_SESSION_RW;
+ do_set_engine = 1;
+ opt_engine = optarg;
+ action_count++;
+ break;
case 'r':
need_session |= NEED_SESSION_RO;
do_read_object = 1;
@@ -841,6 +836,26 @@ int main(int argc, char * argv[])
util_print_usage_and_die(app_name, options, option_help, NULL);
}
}
+#ifdef ENABLE_OPENSSL
+#if (OPENSSL_VERSION_NUMBER >= 0x00907000L && OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER)
+ OPENSSL_config(NULL);
+#endif
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
+ OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS
+ | OPENSSL_INIT_ADD_ALL_CIPHERS
+ | OPENSSL_INIT_ADD_ALL_DIGESTS
+ | OPENSSL_INIT_LOAD_CONFIG,
+ NULL);
+#else
+ /* OpenSSL magic */
+ if(do_set_engine) {
+ eng = ENGINE_by_id(opt_engine);
+ ENGINE_set_default(eng, ENGINE_METHOD_ALL);
+ }
+ OpenSSL_add_all_algorithms();
+ OPENSSL_malloc_init();
+#endif
+#endif
if (optind < argc) {
util_fatal("invalid option(s) given");
}
@@ -2415,6 +2430,8 @@ parse_ec_pkey(EVP_PKEY *pkey, int private, struct gostkey_info *gost)
public keys (-type pubkey) and data objects (-type data). */
static int write_object(CK_SESSION_HANDLE session)
{
+ const CK_BYTE GOST_HASH_PARAMSET_OID[] = {0x06, 0x07, 0x2a, 0x85, 0x03, 0x02, 0x02, 0x1e, 0x01};
+ CK_BYTE hash_paramset_encoded_oid[9];
CK_BBOOL _true = TRUE;
CK_BBOOL _false = FALSE;
unsigned char contents[MAX_OBJECT_SIZE + 1];
@@ -2634,12 +2651,16 @@ static int write_object(CK_SESSION_HANDLE session)
n_privkey_attr++;
}
else if (pk_type == NID_id_GostR3410_2001) {
- type = CKK_GOSTR3410;
+printf("Write gost keyn");
+ memcpy(hash_paramset_encoded_oid, GOST_HASH_PARAMSET_OID, sizeof(GOST_HASH_PARAMSET_OID));
+ type = CKK_GOSTR3410;
FILL_ATTR(privkey_templ[n_privkey_attr], CKA_KEY_TYPE, &type, sizeof(type));
n_privkey_attr++;
FILL_ATTR(privkey_templ[n_privkey_attr], CKA_GOSTR3410_PARAMS, gost.param_oid.value, gost.param_oid.len);
n_privkey_attr++;
+ FILL_ATTR(privkey_templ[n_privkey_attr], CKA_GOSTR3411_PARAMS, hash_paramset_encoded_oid, sizeof(hash_paramset_encoded_oid));
+ n_privkey_attr++;
FILL_ATTR(privkey_templ[n_privkey_attr], CKA_VALUE, gost.private.value, gost.private.len);
/* CKA_VALUE of the GOST key has to be in the little endian order */
rv = sc_mem_reverse(privkey_templ[n_privkey_attr].pValue, privkey_templ[n_privkey_attr].ulValueLen);
@@ -2735,6 +2756,7 @@ static int write_object(CK_SESSION_HANDLE session)
n_pubkey_attr++;
}
else if (pk_type == NID_id_GostR3410_2001) {
+printf("Write gost public key");
type = CKK_GOSTR3410;
FILL_ATTR(pubkey_templ[n_pubkey_attr], CKA_KEY_TYPE, &type, sizeof(type));
@@ -2824,6 +2846,7 @@ static int write_object(CK_SESSION_HANDLE session)
}
if (n_privkey_attr) {
+ printf("Create object with gost keyn");
rv = p11->C_CreateObject(session, privkey_templ, n_privkey_attr, &privkey_obj);
if (rv != CKR_OK)
p11_fatal("C_CreateObject", rv); Обновлено 13.01.2019
Добрый день! Уважаемые читатели и подписчики IT блога Pyatilistnik.org. Последние два дня у меня была интересная задача по поиску решения на вот такую ситуацию, есть физический или виртуальный сервер, на нем установлена наверняка многим известная КриптоПРО. На сервер подключен USB ключ JaCarta, который используется для подписи документов для ВТБ24 ДБО. Локально на Windows 10 все работает, а вот на серверной платформе Windows Server 2016 и 2012 R2, Криптопро не видит ключ JaCarta. Давайте разбираться в чем проблема и как ее поправить.
Описание окружения
Есть виртуальная машина на Vmware ESXi 6.5, в качестве операционной системы установлена Windows Server 2012 R2. На сервере стоит КриптоПРО 4.0.9944, последней версии на текущий момент. С сетевого USB хаба, по технологии USB over ip, подключен ключ JaCarta. Ключ в системе видится, а вот в КриптоПРО нет.
Алгоритм решения проблем с JaCarta
КриптоПРО очень часто вызывает различные ошибки в Windows, простой пример (Windows installer service could not be accessed). Вот так вот выглядит ситуация, когда утилита КриптоПРО не видит сертификат в контейнере.

Как видно в утилите UTN Manager ключ подключен, он видится в системе в смарт картах в виде Microsoft Usbccid (WUDF) устройства, но вот CryptoPRO, этот контейнер не определяет и у вас нет возможности установить сертификат. Локально токен подключали, все было то же самое. Стали думать что сделать.
Возможные причины с определением контейнера
- Во первых, это проблема с драйверами, например, в Windows Server 2012 R2, JaCarta в идеале должна определяться в списке смарт карт как JaCarta Usbccid Smartcard, а не Microsoft Usbccid (WUDF)
- Во вторых если устройство видится как Microsoft Usbccid (WUDF), то версия драйверов может быть устаревшей, и из-за чего ваши утилиты будут не определять защищенный USB носитель.
- Устарелая версия CryptoPRO
Как решить проблему, что криптопро не видит USB ключ?
Создали новую виртуальную машину и стали ставить софт все последовательно.
Перед установкой любого программного обеспечения работающего с USB носителями на которых находятся сертификаты и закрытые ключи. Нужно ОБЯЗАТЕЛЬНО отключить токен, если воткнут локально, то отключаем его, если по сети, разрываем сессию
- Первым делом обновляем вашу операционную систему, всеми доступными обновлениями, так как Microsoft исправляет много ошибок и багов, в том числе и драйверами.
- Вторым пунктом является, в случае с физическим сервером, установить все свежие драйвера на материнскую плату и все периферийное оборудование.
- Далее устанавливаете Единый Клиент JaCarta.
- Устанавливаете свежую версию КриптоПРО
Установка единого клиента JaCarta PKI
Единый Клиент JaCarta — это специальная утилита от компании «Аладдин», для правильной работы с токенами JaCarta. Загрузить последнюю версию, данного программного продукта, вы можете с официального сайта, или у меня с облака, если вдруг, не получиться с сайта производителя.

Далее полученный архив вы распаковываете и запускаете установочный файл, под свою архитектуру Windows, у меня это 64-х битная. Приступаем к установке Jacarta драйвера. Единый клиент Jacarta, ставится очень просто (НАПОМИНАЮ ваш токен в момент инсталляции, должен быть отключен). На первом окне мастера установки, просто нажимаем далее.

Принимаем лицензионное соглашение и нажимаем «Далее»

Чтобы драйвера токенов JaCarta у вас работали корректно, достаточно выполнить стандартную установку.

Если выберете «Выборочную установку», то обязательно установите галки:
- Драйверы JaCarta
- Модули поддержки
- Модуль поддержки для КриптоПРО

Далее нажимаем «Установить».

Через пару секунд, Единый клиент Jacarta, успешно установлен.

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

Установка КриптоПРО
После установки JaCarta PKI, нужно установить КриптоПРО, для этого заходите на официальный сайт.
https://www.cryptopro.ru/downloads

На текущий момент самая последняя версия КриптоПро CSP 4.0.9944. Запускаем установщик, оставляем галку «Установить корневые сертификаты» и нажимаем «Установить (Рекомендуется)»

Инсталляция КриптоПРО будет выполнена в фоновом режиме, после которой вы увидите предложение, о перезагрузке браузера, но я вам советую полностью перезагрузиться.

После перезагрузки подключайте ваш USB токен JaCarta. У меня подключение идет по сети, с устройства DIGI, через клиента Anywhere View. В клиенте Anywhere View, мой USB носитель Jacarta, успешно определен, но как Microsoft Usbccid (WUDF), а в идеале должен определиться как JaCarta Usbccid Smartcard, но нужно в любом случае проверить, так как все может работать и так.

Открыв утилиту «Единый клиент Jacarta PKI», подключенного токена обнаружено не было, значит, что-то с драйверами.

Microsoft Usbccid (WUDF) — это стандартный драйвер Microsoft, который по умолчанию устанавливается на различные токены, и бывает, что все работает, но не всегда. Операционная система Windows по умолчанию, ставит их в виду своей архитектуры и настройки, мне вот лично в данный момент такое не нужно. Что делаем, нам нужно удалить драйвера Microsoft Usbccid (WUDF) и установить драйвера для носителя Jacarta.
Откройте диспетчер устройств Windows, найдите пункт «Считыватели устройств смарт-карт (Smart card readers)» щелкните по Microsoft Usbccid (WUDF) и выберите пункт «Свойства». Перейдите на вкладку «Драйвера» и нажмите удалить (Uninstall)

Согласитесь с удалением драйвера Microsoft Usbccid (WUDF).

Вас уведомят, что для вступления изменений в силу, необходима перезагрузка системы, обязательно соглашаемся.

После перезагрузки системы, вы можете увидеть установку устройства и драйверов ARDS Jacarta.

Откройте диспетчер устройств, вы должны увидеть, что теперь ваше устройство определено, как JaCarta Usbccid Smartcar и если зайти в его свойства, то вы увидите, что смарт карта jacarta, теперь использует драйвер версии 6.1.7601 от ALADDIN R.D.ZAO, так и должно быть.

Если открыть единый клиент Jacarta, то вы увидите свою электронную подпись, это означает, что смарт карта нормально определилась.

Открываем CryptoPRO, и видим, что криптопро не видит сертификат в контейнере, хотя все драйвера определились как нужно. Есть еще одна фишка.
- В RDP сессии вы не увидите свой токен, только локально, уж такая работа токена, либо я не нашел как это поправить. Вы можете попробовать выполнить рекомендации по устранению ошибки «Не возможно подключиться к службе управления смарт-картами».
- Нужно снять одну галку в CryptoPRO

ОБЯЗАТЕЛЬНО снимите галку «Не использовать устаревшие cipher suite-ы» и перезагрузитесь.

После этих манипуляций у меня КриптоПРО увидел сертификат и смарт карта jacarta стала рабочей, можно подписывать документы.

Еще можете в устройствах и принтерах, увидеть ваше устройство JaCarta,

Если у вас как и у меня, токен jacarta установлен в виртуальной машине, то вам придется устанавливать сертификат, через console виртуальной машины, и так же дать на нее права ответственному человеку. Если это физический сервер, то там придется давать права на порт управления, в котором так же есть виртуальная консоль.
Не возможно подключиться к службе управления смарт-картами
Когда вы установили все драйвера для токенов Jacarta, вы можете увидеть при подключении по RDP и открытии утилиты «Единый клиент Jacarta PKI» вот такое сообщение с ошибкой:
Не возможно подключиться к службе управления смарт-картами

- Не запущена служба смарт-карт на локальной машине. Архитектурой RDP-сессии, разработанной Microsoft, не предусмотрено использование ключевых носителей, подключенных к удалённому компьютеру, поэтому в RDP-сессии удалённый компьютер использует службу смарт-карт локального компьютера. Из этого следует что, запуска службы смарт-карт внутри RDP-сессии недостаточно для нормальной работы.
- Служба управления смарт-картами на локальном компьютере запущена, но недоступна для программы внутри RDP-сессии из-за настроек Windows и/или RDP-клиента.
Как исправить ошибку «Не возможно подключиться к службе управления смарт-картами».
- Запустите службу смарт-карт на локальной машине, с которой вы инициируете сеанс удалённого доступа. Настройте её автоматический запуск при старте компьютера.
- Разрешите использование локальных устройств и ресурсов во время удалённого сеанса (в частности, смарт-карт). Для этого, в диалоге «Подключение к удалённому рабочему столу» в параметрах выберите вкладку «Локальные ресурсы», далее в группе «Локальные устройства и ресурсы» нажмите кнопку «Подробнее…», а в открывшемся диалоге выберите пункт «Смарт-карты» и нажмите «ОК», затем «Подключить».

- Убедитесь в сохранности настроек RDP-подключения. По умолчанию они сохраняются в файле Default.rdp в каталоге «Мои Документы» Проследите, чтобы в данном файле присутствовала строчка «redirectsmartcards:i:1».
- Убедитесь в том, что на удалённом компьютере, к которому вы осуществляете RDP-подключение, не активирована групповая политика
[Computer ConfigurationAdministrative TemplatesWindows ComponentsTerminal ServicesClientServer data redirectionDo not allow smart card device redirection] -[Конфигурация компьютераадминистративные шаблоныкомпоненты windowsслужбы удалённых рабочих столовузел сеансов удалённых рабочих столовперенаправление устройств и ресурсовНе разрешать перенаправление устройства чтения смарт-карт]. Если она включена (Enabled), то отключите её, и перегрузите компьютер. - Если у вас установлена Windows 7 SP1 или Windows 2008 R2 SP1 и вы используете RDC 8.1 для соединения с компьютерами под управлением Windows 8 и выше, то вам необходимо установить обновление для операционной системы https://support.microsoft.com/en-us/kb/2913751
Вот такой вот был траблшутинг по настройке токена Jacarta, КриптоПРО на терминальном сервере, для подписи документов в ВТБ24 ДБО. Если есть замечания или поправки, то пишите их в комментариях.
Автор ПО и методики — Сергей Солдатов (https://www.securitylab.ru/blog/persona … 155893.php)
1. Установить Smartcard Sniffer
Если включён Secure Boot (версии Windows 8 и выше), то инфраструктура AppInit_DLLs выключена.
Я делал на Windows 7 x64.
1.1. Скачать https://code.google.com/p/smartcard-sniffer/
1.2. Библиотеку необходимой разрядности SmartcardSniffer.dll положить в папку
1.3. Прописать в реестре загрузку SmartcardSniffer.dll и значения переменных
Код: Выделить всё
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWindows]
"AppInit_DLLs"="C:\1\SmartcardSniffer.dll"
"LoadAppInit_DLLs"=dword:00000001
"RequireSignedAppInit_DLLs"=dword:00000000 2. Получить дамп диалога приложения с токеном
Для этого выполнить любую операцию, требующую передачу ключа в приложение.
Например, выполнить КриптоПро CSP -> Сервис -> Протестировать.
После этого в папке, где лежит SmartcardSniffer.dll, появляется файл rundll32.exe.txt, в котором сохранён дамп диалога приложения с токеном.
2.1. Разбить дамп на отдельные файлы диалога
2.1.1. Скачать writeBinaryAPDU.pl — https://github.com/votadlos/Antitoken/b … aryAPDU.pl
2.1.2. Скачать и установить Perl — https://strawberryperl.com/download/5.3 … -64bit.msi
2.1.3. Запустить
В результате rundll32.exe.txt будет разобран на бинарные файлы вида «001_out(4)39_6A_42_32», где
001 — идентификатор последовательности запрос-ответ;
out — направление передачи: out — из токена в приложение, in — от приложения в токен;
(4) — количество переданных/полученных байтов;
39_6A_42_32 — первые 4 байта.
3. Собрать контейнер
3.1. primary.key — размер 36 байт, начинается с 30_22_04_20
Ищем файлы вида №_out(36)30_22_04_20.
У меня таких было 2 штуки, размером 68 байт и 80 байт, начало одинаковое, в конце нули, взял один и обрезал до 36 байт.
3.2. masks.key — размер 56 байт, начинается с 30_36_04_20
Ищем файлы вида №_out(56)30_36_04_20.
У меня таких было 2 штуки, размером по 64 байта, одинаковые, в конце нули, взял один и обрезал до 56 байт.
3.3. header.key — самый большой файл.
Находим файлы с самым большим объёмом, плюс берём кусок до и кусок после.
У меня он передавался два раза, состоял из 16 частей — 10 байт (379_out(10)30_82_0B_26)+ 14 * 200 байт + 48 байт (394_out(48)1F_E6_2E_0D), всего 2 858 байт. Соединил все части командой
Код: Выделить всё
copy /B 379_out(10)30_82_0B_26 + ... + 394_out(48)1F_E6_2E_0D header.key Либо положить все эти файлы в отдельную директорию и
3.4. name.key — просто взял от другого контейнера
Затем положил на флэшку, с помощью CertFix (версии 1.1.27.3154) сделал экспортируемым и скопировал в реестр.

Из нашей статьи вы узнаете:
ЭЦП — довольно сложный цифровой продукт, обращение с которым в определенных ситуациях может потребовать некоторых навыков и знаний. Например, в ходе установки сертификатов ЭП посредством «КриптоПро» после выбора соответствующего ключевого контейнера нередко выдаются неприятные сообщения об ошибке вследствие отсутствия открытого шифровочного ключа, который необходим для обеспечения информационной безопасности, без чего система не будет принимать ЭЦП.
Такую ошибку несложно устранить без вызова специалиста или обращения в службу поддержки. Алгоритм действий, направленных на решение этой проблемы, приводится ниже.
Что может послужить причиной такой ошибки
Всплывающее окно со злополучным сообщением об ошибке появляется на экранах пользователей в тех случаях, если система не смогла обнаружить соответствующий ключ на носителе. Такая ситуация происходит при следующих действиях пользователей:
- установка сертификата впервые;
- экспортирование данных на внешний носитель;
- попытка просмотра ключей в контейнерах ключей;
- загрузка информации на компьютер извне.
В целях устранения ошибки обычно бывает достаточно произвести корректную ручную переустановку сертификата.
Решение ошибки: отсутствие электронного сертификата в контейнере закрытого ключа
Для начала запускаем «КриптоПро» нажатием кнопки «Пуск». Затем выбираем «Настройку», в возникающем на мониторе окне заходим в опцию панели управления, далее «сервис – установить личный сертификат».
Далее, через кнопку «обзор» указываем путь, где сохранен открытый ключ – файл с расширением *.cert или *.crt
Жмём «Далее», в мастере установки сертификата мы увидим путь, который указывали до нашего сертификата.
Нам отображается информация, содержащаяся в открытом ключе на пользователя, жмём «далее»
В следующем окне можно воспользоваться двумя путями поиска нужного контейнера закрытого ключа:
- «найти контейнер автоматически
- вручную через «обзор»
В первом случае КриптоПро на основе данных из открытого ключа подберет закрытый, в случае с ручным поиском нужно будет знать название закрытого ключа, чтобы выбрать его для установки
Самый простой вариант выбрать автоматический поиск, затем после «обнаружения» необходимого контейнера, мы увидим заполненную строчку с его именем и после жмём «Далее»
Личный сертификат пользователя всегда устанавливается в хранилище «Личное», можно выбрать как вручную, так и КриптоПро может сделать это за вас по умолчанию, затем подтверждаем установку цепочки сертификатов и жмём «Далее»
>
В случае успешной установки КриптоПро выдаст окно с информацией об окончании процедуры и жмём «Готово»
Затем появится окно с подтверждением данной операции, жмём «ДА»
В следующем окне увидим информацию о том, что процесс окончен успешно. Сертификат установлен в контейнер закрытого ключа.
Особенности версий КриптоПро
С января 2019 года квалифицированные сертификаты могут выпускаться только по ГОСТ 2012, выпуск по другому ГОСТу прекращен. Мы об этом писали ранее в статье. Важно помнить, что версии криптопро на ГОСТ 2012 работают только с версии 4.0 и выше. Все старые версии КриптоПро, для нормальной работы, потребуется обновить или заменить на актуальную. Сделать это нужно не позднее 31 декабря 2019 года.
Экспорт закрытого ключа
Для экспорта закрытого ключа выполните следующие действия:
Откройте Крипто-Про CSP. Перейдите во вкладку «Сервис» и нажмите кнопку «Просмотреть сертификаты в контейнере» (Рис. 1).

В открывшемся окне укажите имя ключевого контейнера, нажав «Обзор» (Рис. 2).

В открывшемся окне укажите имя ключевого контейнера, нажав «Обзор» (Рис. 2).
Выберите ключевой контейнер пользователя, затем нажмите «Ок» (Рис. 3).

Нажмите «Далее» (Рис. 4).

Нажмите «Далее» (Рис. 4).
Далее нажмите кнопку «Свойства» (Рис. 5).

В открывшемся окне перейдите во вкладку «Состав» и нажмите кнопку «Копировать в файл» (Рис. 6).

В открывшемся окне перейдите во вкладку «Состав» и нажмите кнопку «Копировать в файл» (Рис. 6).
Откроется мастер экспорта сертификатов. Нажмите «Далее» (Рис. 7).

Далее отметьте «Да, экспортировать закрытый ключ» (1) и нажмите «Далее» (2) (Рис. 8).

Далее отметьте «Да, экспортировать закрытый ключ» (1) и нажмите «Далее» (2) (Рис. 8).
Отметьте следующие пункты: «Файл обмена личной информацией – PKCS #12», «Включить по возможности все сертификаты в путь сертификации» и «Экспортировать все расширенные свойства» (1), затем нажмите кнопку «Далее» (2) (Рис. 9).

Укажите пароль и подтверждение пароля (1), затем нажмите кнопку «Далее» (2) (Рис. 10).

Укажите пароль и подтверждение пароля (1), затем нажмите кнопку «Далее» (2) (Рис. 10).
Далее укажите имя файла, используя «Обзор» (1), затем нажмите кнопку «Далее» (2) (Рис. 11).

Далее нажмите «Готово» (Рис. 12).

Далее нажмите «Готово» (Рис. 12).
Система сообщит о чтении ключевой информации, нажмите кнопку «Ок» (Рис. 13).

Откроется окно с информацией об успешном экспорте. Нажмите «Ок» (Рис. 14).

Откроется окно с информацией об успешном экспорте. Нажмите «Ок» (Рис. 14).
Импорт закрытого ключа
Для установки закрытой части ключа откройте файл, сохранённый ранее (Рис. 15).

Откроется «Мастер импорта сертификатов», нажмите кнопку «Далее» (Рис. 16).

Откроется «Мастер импорта сертификатов», нажмите кнопку «Далее» (Рис. 16).
Укажите файл, который нужно импортировать, используя кнопку «Обзор», затем нажмите «Далее» (Рис. 17).

Далее введите пароль (1), отметьте пункт «Пометить этот ключ как экспортируемый, что позволит сохранять резервную копию ключа и перемещать его.» (2), затем нажмите кнопку «Далее» (Рис. 18).

Далее введите пароль (1), отметьте пункт «Пометить этот ключ как экспортируемый, что позволит сохранять резервную копию ключа и перемещать его.» (2), затем нажмите кнопку «Далее» (Рис. 18).
Отметьте пункт «Поместить все сертификаты в следующее хранилище» (1), нажмите кнопку «Обзор» (2), в открывшемся окне отметьте «Личное» (3) и нажмите «Ок» (4). В окне мастера настроек нажмите «Далее» (5) (Рис. 19).

Нажмите «Готово» (Рис. 20).

Нажмите «Готово» (Рис. 20).
В открывшемся окне КриптоПро CSP выберите носитель, на который будет импортирован ключ, затем нажмите «Ок» (Рис. 21).

Далее укажите новый пароль и его подтверждение (Рис. 22).

Далее укажите новый пароль и его подтверждение (Рис. 22).
Система сообщит о чтении ключевой информации, нажмите кнопку «Ок» (Рис. 23).

Далее введите пароль (Рис. 24).

Далее введите пароль (Рис. 24).
Далее нажмите «Ок» (Рис. 25).

Импорт успешно будет выполнен (Рис. 26).

Импорт успешно будет выполнен (Рис. 26).
Далее выполните установку личного сертификата по инструкции: /ru-ru/support/kb/333#1.
| sonnerad |
|
|
Статус: Участник Группы: Участники Сказал(а) «Спасибо»: 1 раз | Подскажите, пожалуйста, в чем может быть проблема? |
![]() | |
| Александр Лавник |
|
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 53 раз | Автор: sonnerad Подскажите, пожалуйста, в чем может быть проблема? Здравствуйте. Попробуйте выполнить следующее: КриптоПро CSP https://www.cryptopro.ru…cs11_jacarta_esm_win.jpg |
| Техническую поддержку оказываем тут | |
![]() | |
| sonnerad |
|
|
Статус: Участник Группы: Участники Сказал(а) «Спасибо»: 1 раз | Заработало, спасибо! |
![]() | |
| Александр Лавник |
|
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 53 раз | Автор: sonnerad Заработало, спасибо! К сожалению, никак. Этот ключ никогда не покидает токен. |
| Техническую поддержку оказываем тут | |
![]() | |
| Пользователи, просматривающие эту тему |
| Guest |
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.








