- Подготовка к работе по копированию ключа
- Что делать, если возникает ошибка об отсутствии сертификата в контейнере закрытого ключа
- Что такое Рутокен
- Специальная ЭЦП на Рутокене
- Структура контейнера ключей ЭП
- Экспорт ключей электронной подписи
- Внимательно читайте комменты
- Важные моменты
- Проблема пользователя AndrewAks
- Используем КриптоПро CSP
- Как экспортировать закрытый ключ
- Копируем рутокен на компьютер или флешку
- Копируем с помощью утилиты
- Экспорт сертификата через свойства обозревателя
- В каких ситуациях появляется ошибка об отсутствии сертификатов в контейнере закрытого ключа
- Что делать, если ошибка об отсутствии сертификатов в контейнере закрытого ключа не исчезла
- Популярные вопросы
- Экспорт сертификата из КриптоПро CSP
- Проверяем ключ на не экспортируемость
- Что произойдет, если ваша электронная подпись попадет в руки злоумышленников?
Подготовка к работе по копированию ключа
Прежде чем приступить к работе по копированию ключа, подготовьте необходимые элементы:

Что делать, если возникает ошибка об отсутствии сертификата в контейнере закрытого ключа
Электронная подпись содержит в себе сложную техническую составляющую. Работа с ней требует определенных навыков и знаний, особенно при использовании сертификатов ЭП через КриптоПро CSP. Возможно, в процессе работы появится ошибка об отсутствии сертификата в контейнере закрытого ключа. Неисправность можно исправить самостоятельно или обратившись к специалисту.
Что такое Рутокен
Рутокен – это сертифицированный накопитель, обладающий дополнительной защитой, что позволяет сохранить конфиденциальные данные. На один Рутокен можно записать до тридцати подписей, все зависит от объема памяти устройства. Обычная USB-флешка не подходит для хранения электронных подписей из-за недостаточной защиты. Флешку можно использовать только для временного хранения подписи на втором Рутокене.
Специальная ЭЦП на Рутокене
С 1 января 2022 года ФНС требует использовать специальную электронно-цифровую подпись (ЭЦП), которая хранится на Рутокене. Однако, часто документы подписывают несколько человек, и передача Рутокена не всегда возможна. Копирование ключа ФНС также недоступно. Рассмотрим в статье, как скопировать ключ с Рутокена в такой ситуации.
Структура контейнера ключей ЭП
Контейнер ключей электронной подписи содержит открытый и закрытый ключ, а также сертификат. Все эти элементы создаются с использованием криптографических алгоритмов. Для работы с квалифицированной электронной подписью (КЭП) требуется использовать оба ключа, каждый выполняет свои функции.
Экспорт ключей электронной подписи
Рассмотрим процесс экспорта закрытого и открытого ключей электронной подписи с помощью Windows или криптопровайдера КриптоПро CSP. Важно помнить, что ключи, полученные в аккредитованных удостоверяющих центрах, можно хранить на токене или в компьютере. Удостоверяющий центр ФНС записывает контейнеры ключей только на токены и запрещает копирование на другие носители.
## Закрытый ключ и открытый ключ в ЭЦП
Закрытый ключ представлен в виде уникального набора символов, которые используются криптографическим алгоритмом для создания электронной подписи в электронном документе.
Владелец электронной подписи использует именно закрытую часть для подписания электронных документов. Любой, кто получает доступ к закрытому ключу электронной подписи, может им воспользоваться. Поэтому его хранят на защищённых носителях: смарт-карте, токене, USB-носителе или дискете.
Хранить закрытый ключ можно на компьютере, однако это небезопасно — воспользоваться им сможет любой, кто имеет доступ к компьютеру. Самым защищённым носителем считается смарт-карта, так как на ней используется двухфакторная аутентификация.
Закрытый ключ хранится в контейнере. В формате КриптоПро контейнер представлен в виде папки, которая содержит несколько файлов с расширением .key. Випнет имеет другой формат, в нём контейнер представлен в виде единственного файла без расширения.
## Что такое открытый ключ ЭЦП
Открытая часть ключевой пары ЭЦП представляется в виде электронного сертификата или бумажного документа. Сертификат выдаётся только удостоверяющим центром и содержит информацию, которая используется для проверки подписи владельца и шифрования данных.
ЭЦП — это устаревшее понятие. Расшифровывается как электронная цифровая подпись. В настоящее время используется более ёмкое название ЭП, которое расшифровывается как электронная подпись.
Открытый ключ можно использовать для работы с партнёрами, в отличие от закрытого, который хранится в защищённом месте. Контрагенты могут использовать открытый ключ владельца для шифрования данных, которые ему посылают. Это означает, что после отправки этих данных получить доступ к ним сможет только владелец закрытой части ключа.
Сертификат содержит в себе следующие данные:
| Название поля | Описание |
| --------------------- | ----------------- |
| Субъект | Владелец сертификата |
| Выпускатель | Авторитет, который выдал сертификат |
| Серийный номер | Уникальный номер сертификата |
| Срок действия | Период времени, в течение которого сертификат действителен |
| Отпечаток ключа | Хеш-сумма открытого ключа владельца |
Электронный сертификат виден на обычных носителях в виде файла с расширением .cer, а на защищённых картах Рутокен, eToken и JaCarta его можно посмотреть с помощью криптопровайдера или драйвера носителя.
Открытый ключ позволяет проверить электронную подпись под документом, в отличие от закрытого ключа, который нужен для создания электронной подписи. Доступ к закрытому ключу имеет только владелец, а открытый ключ доступен всем участникам электронного взаимодействия. Сертификат ЭП даёт возможность идентифицировать владельца.
## Экспортировать неэкспортируемый сертификат с Рутокена
Небольшая заметка о том, как экспортировать неэкспортируемый ключ с Рутокена.
Внимательно читайте комменты
Если при создании ЭЦП не был установлен флаг дающий возможность экспортировать ключ, то при попытке скопировать ключ с Rutoken через КриптоПро у вас появится Ошибка копирования контейнера. У вас нет разрешений на экспорт ключа, потому что при создании ключа не был установлен соответствующий флаг.
Но скопировать его все равно можно – для этого понадобится специальное ПО:
- Утилита проверки Рутокенов версии 3.4.2
- Сертфикс 1.1.27.3154
При помощи утилиты проверки Рутокенов версии 3.4.2 вы сможете экспортировать ключ с Рутокен на флешку или реестр.
После чего при помощи помощи Сертфикс 1.1.27.3154 вы сможете снять блокировку зажав клавишу Shift и кликнув по нужному сертификату правой кнопкой мыши выбрав пункт активации экспорта согласно вашему новому месту хранения выбранного в утилите проверки Рутокенов.
Важные моменты
- Версия Сертфикс выше 1.1.27.3154 может быть программно ограничена на возможность сделать сертификат некоторых удостоверяющих центров экспортируемым.
- Обновление программа проверяет при запуске, поэтому чтобы обновление не загрузилось необходимо заблокировать доступ в интернет для нее через брандмауэр Windows.
Для блокировки приложения читайте в: Блокировка приложения в Брандмауэр Windows
Проблема пользователя AndrewAks
Текст проблемы:
Возникла такая проблема: Windows server 2019. На сервере установлен КриптоПро CSP 5.0.12600 серверная лицензия. Установлен контейнер с подписью на флешке. Сертификат установлен в систему. Все это сделано из-под пользователя, под которым работает сервер 1С 8.3.2239 x64, базы УТ 10.3.79.1, БП 3.0.143.32 в которых настроен 1С:ЭДО на два предприятия.
Несколько дней назад один из сертификатов закончился, выдали новый на Rutoken Lite с запретом экспорта, который я благополучно скопировал на флешку утилитой проверки рутокенов 3.4.2. При этом на сервере на последний месяц никаких изменений ни с сертификатами, ни с политиками доступа не происходило. Никакой новый софт не устанавливался.
Сертификат установился нормально, тестирование в КриптоПро проходит успешно, а вот в 1С начались траблы, ошибка в УТ 10.3 при проверке сертификата: Код ошибки 113. Не удалось выполнить операции шифрования/расшифровки на сервере. Ошибка при получении свойства сертификата (0x00000000).
Ошибка в БП 3.0 типовой при проверке сертификата: Ошибка при получении свойства сертификата (0x00000000).
Обычно это означает, что указан неправильный пароль доступа к закрытому ключу, но никакого пароля на ключе нет. Я пробовал стандартные пароли, это ничего не изменило.
На сайте 1c-edo.ru есть описание причин ошибки и варианты исправления, но они не сработали.
- Удаление контейнера и сертификата и их повторная установка не дали результата.
- Рестарт сервера с очисткой кэша сервера/пользователя также не привел к результату.
- Обновление платформы на версии 8.3.22.2283 и 8.3.21.1895 не принесло решения.
- Проверка и полное переформатирование флешки в FAT32 ничего не изменило.
- Полная переустановка КриптоПро (дважды вычистил утилитой полного удаления с перезагрузкой).
Звонил в техподдержку 1С ЭДО, их специалист порекомендовал полностью переустановить КриптоПро, но это не помогло.
У меня нет проблем с вторым сертификатом, всё работает.
Возможно, кто-то сталкивался с подобной ситуацией? Или есть идеи, что ещё можно предпринять? (кроме перевыпуска сертификата, так как с ним всё в порядке, по-видимому).
Закрытый ключ КриптоПро CSP представляет собой флеш-накопитель, на котором в директории xxxxxx.000 находятся файлы primary.key, primary2.key, masks.key, masks2.key, name.key и header.key.
Эти ключи могут быть прочитаны только программой CryptoProJCP, которая на данный момент имеет стоимость лицензии сервера в 120 тыс. рублей.
Наша цель – получить контейнер .p12 с минимальными расходами.
С контейнером .p12 можно работать из Java, например, с помощью библиотеки Bouncy Castle, но это уже тема для следующей статьи.
Для экспорта ключа нам пригодится замечательная утилита P12FromGostCSP, которая конвертирует ключ в формат .pfx.
После подключения флешки мы запускаем утилиту, выбираем ключ для преобразования, указываем пароль хранилища и получаем в итоге хранилище в формате .pfx.
Однако это только начало, так как после конвертации контейнер остаётся недоступным для чтения из Java.
Далее нам потребуется с помощью OpenSSL извлечь закрытый ключ и сертификат и поместить их в .p12 хранилище.
Проблема в том, что OpenSSL изначально не работает с алгоритмом ГОСТ 2012. Для решения этой проблемы нам потребуется программа OpenSSL с дополнением gost engine (ссылка здесь). Необходимо установить это дополнение, следуя инструкциям, и скомпилировать его из исходников.
Мы можем воспользоваться Docker-контейнером, в котором уже установлен OpenSSL с дополнением для работы с алгоритмом ГОСТ 2012.
Ссылка на статью с описанием использования данного Docker-образа: Docker-образы с поддержкой ГОСТ-сертификатов в OpenSSL, cURL, PHP, Nginx.
В самом простом варианте нам потребуется запустить Docker-контейнер, подключиться к нему, выполнить несколько консольных команд для извлечения закрытого ключа и сертификата из .pfx и помещения их в .p12.
Чтобы запустить контейнер и выполнить преобразования, используем следующие команды:
docker run -v c:/tmp:/usr/tmp --rm -i -t rnix/openssl-gost bash
## Достаем ключ
openssl pkcs12 -in gost.pfx -out gost.key -nocerts
## После команды задаем пароль для ключа.
## Достаем сертификат
openssl pkcs12 -in gost.pfx -out gost.cer -nokeys
## Объединяем их в хранилище .p12, задавая ключу имя prod
openssl pkcs12 -export -inkey gost.key -in gost.cer -out gost.p12 -name prod
P.S. Если тема интересна, напишу статью как сделать сервис на spring boot, который будет подписывать файлы и сообщения с помощью ключа и сертификата в .p12 контейнере по алгоритму ГОСТ 2012.
Спасибо за внимание 🙂
С 1 января 2022 года ЭЦП на директоров юридических лиц и ИП выдаются в ФНС на носителе Рутокен. Не всегда есть возможность использовать носитель при подписании документов (много бухгалтеров кто подписывает, используется терминальный сервер, виртуальные сервера, множество юр.лиц и тд.). Раньше можно было скопировать ЭЦП с токена в реестр (файл) и подписывать с помощью него, но сейчас при выдачи ключа в ФНС стоит запрет на копирование закрытого ключа.
рутокен с оригиналом ключа; второй рутокен второй контейнер (флешку) куда будет записана копия ключа.
Что такое рутокен

Рутокен — это аппаратные и программные решения в области аутентификации, защиты информации и электронной подписи. Устройства Рутокен являются основными ключевыми носителями в массовых российских проектах, базирующихся на технологиях ЭП и инфраструктуре открытых ключей (PKI).
Проверяем ключ на не экспортируемость Прежде чем начать работу, проверьте, может все же ключ можно экспортировать без лишних усилий с вашей стороны.
вставьте рутокен в ПК; Откройте панель управления Rutoken и проверьте появился ли ключ в системе;

зайдите в «КриптоПро»; для проверки ключа выберете вкладку «Сервис» и нажмите «Протестировать»;

выберете сертификат; далее в открывшемся окне смотрим, действительно ли запрещен экспорт ключа. В большинстве случаев напротив строки «Экспорт ключа» стоит статус «Запрещен» (при попытке скопировать такой ключ, система выдаст сообщение об ошибке).

Лайфхак! Если у вас уже закончилась ЭЦП и вы планируете выпускать новую подпись, то приобретите пустой Rutoken Lite, и на него запишите новую подпись, чтобы в дальнейшем можно было без проблем сделать экспорт ключа
Копируем рутокен на компьютер или флешку Итак, вы выяснили, что ключ имеет статус «Не экспортируемый», но скопировать его нужно. Можно действовать следующими методами:
воспользоваться утилитой Tokens.exe; задействовать КриптоПро CSP; Копируем с помощью утилиты Этот метод также позволяет перенести не экспортируемый ключ на флэшку или скопировать на ПК.
Tokens.exe – является утилитой, которая позволяет копировать ключи с рутокена, имеющие статус «не экспортируемый». Для корректного функционирования программы специалисты рекомендуют устанавливать три дополнения, идущие в комплекте с утилитой.
Рутокен (старый несертифицированный), Рутокен S, Рутокен Lite — поддерживаются;
Рутокен ЭЦП 2.0, JaCarta LT, ESMART Token ГОСТ — не поддерживаются.
после того, как скачали Tokens.exe и необходимые дополнения, нужно распаковать архив;

подготовьте новый рутокен и чистую флешку, подключите их к ПК; запустите утилиту проверки Рутокенов;

в открывшемся окне, выберете нужный сертификат и нажмите на кнопку «Экспорт»;

в качестве объекта для экспорта укажите путь к флэшке либо локальный диск компьютера, отличный от системного; Выбираем флешку. Обязательно сохраняем в корень!

Вводим новое имя контейнера:
После сохранения на флешке будет создан каталог с ключами из Рутокен:

теперь можно убрать рутокен из ПК и оставить только флешку.
Совет: На данном этапе вы уже можете использовать вашу ЭЦП на компьютере без рутокена. Для этого вам останется только установить ключ, через КриптоПро CSP.
Запускаем из архива утилиту: CertFix.001069.exe. Эта программа умеет снимать защиту с ключей на файловом носителе. Выбираем нужный контейнер, который на флешке и нажимаем по нему правой кнопкой мышки с зажатой кнопкой Shift (Shift + Прав.клик):

Снятие защиты с ключей на файловом носителе
В появившимся меню выбираем пункт: Сделать экспортируемым (файловая система). После этого защита на копирование будет снята с контейнера на флешке. В колонке Экспорт, сменится надпись с красной «DENIED» на зеленную «ALOWED»:


Копирование ключа в реестр
Готово! Теперь можно пользоваться копией ключа, размещенной в реестре.
Используем КриптоПро CSP
КриптоПро 4.0 R4 4.0.9963 — КриптоПро 5.0.11455 — КриптоПро 5.0 12000
Перенести ЭЦП на ПК или флешку поможет сервис КриптоПро CSP.
откройте панель управления и найдите КриптоПро CSP; запустите ее кнопкой «Пуск»; перейдите в раздел «Сервис»;

нажмите кнопку «Просмотреть сертификаты в контейнере»; во вкладке «Обзор» нужно выбрать носитель;

нажмите «Ок», чтобы подтвердить выбор; подтверждаем продолжение работы кнопкой «Далее» (возможно, потребуется ввести PIN-код, он обычно простой — 12345678, либо номер КПП вашей организации);


жмем «Далее»; выбрать «не экспортировать закрытый ключ»;

формат DER X.509;

Используем КриптоПро CSP
Рассмотрим, почему появляется ошибка. Всплывающее окно с сообщением «В контейнере закрытого ключа отсутствуют сертификаты» появляется на экранах пользователей в случаях, когда система не смогла обнаружить соответствующий ключ на носителе.
Пример ошибки «В контейнере закрытого ключа отсутствуют сертификаты»
Ключевым носителем может быть жёсткий диск компьютера, реестр ПК или токен. От скачка напряжения, резкого выключения ПК, например, при аварийном выключении света, или от внешних ударов файлы могут повредиться. В результате чего система теряет доступ к ключам и делает работу с электронной подписью невозможной.
Также ошибка об отсутствии сертификатов в контейнере может быть связана со сбоем программного обеспечения. В этом случае файлы остаются целыми, но система их не видит и сообщает пользователю, что они недоступны.
Как экспортировать закрытый ключ
Отдельно, закрытый ключ практически никогда не экспортируется. Копируется сразу ключевая пара — открытый ключ вместе с закрытым.
Выполнять экспорт закрытого и открытого ключа электронной подписи можно из криптопровайдера КриптоПро CSP.
Важно! Если закрытый ключ сделан с использованием другого криптопровайдера, то экспортировать его через КриптоПро не получится.
Копируем рутокен на компьютер или флешку
В программном обеспечении компьютера нет отдельного функционала экспорта открытого ключа. Но значение открытого ключа содержатся в сертификате. Поэтому пользователю достаточно экспортировать только сертификат. Делается это через свойства обозревателя либо из криптопровайдера КриптоПро CSP. При этом носитель с ключом должен быть подключён к компьютеру.
Экспортировать открытый ключ электронной подписи можно только вместе с закрытым ключом.
Копируем с помощью утилиты
Далее нужно убрать статус «Экспорт запрещен». Для этого понадобится еще одна программа CertFix.000032.exe. Качаем ее и устанавливаем на ПК.
Действуем следующим образом:




Экспорт сертификата через свойства обозревателя





В каких ситуациях появляется ошибка об отсутствии сертификатов в контейнере закрытого ключа
Окно об ошибке отсутствия сертификатов в контейнере закрытого ключа всплывает при следующих процессах:
В целях устранения ошибки отсутствия сертификатов в контейнере закрытого ключа достаточно переустановить сертификат вручную.
Важно! На токене или компьютере можно хранить только те ключи, которые были получены в коммерческих аккредитованных удостоверяющих центрах или созданы самостоятельно. Файлы ЭП, записанные в удостоверяющем центре ФНС, неэкспортируемы. Перенести их на другие носители не получится.
Что делать, если ошибка об отсутствии сертификатов в контейнере закрытого ключа не исчезла
Выбрать подходящую лицензию КриптоПро рекомендуем в нашем интернет-магазине. Оставьте короткую заявку для бесплатной консультации специалиста.
Также следует проверить носитель на отсутствие внешних повреждений. При работе с электронной подписью токен должен быть вставлен до конца, а все шлейфы закреплены. Обратитесь в удостоверяющий центр, где был выпущен сертификат, открытый и закрытый ключ.
Популярные вопросы
Такая ошибка встречается на сайте ФНС. Причиной может быть пропуск этапа подписания документа. Чтобы её устранить потребуется выполнить следующие действия:
О том, как добавить контейнер при установке сертификата в СКЗИ, мы рассказывали в нашей статье.
Чтобы установить электронную подпись на MacOS, нужно установить СКЗИ, драйверы для токена, сертификаты подписи и настроить браузер. Более подробно с каждым этапом можно ознакомиться в нашей статье
Статус «Нет привязки к закрытому ключу» может появляться, если: истёк срок действия лицензии КриптоПро. Обычно пользователь скачивает бесплатную версию и забывает о дате её окончания. Также стоит обратить внимание на заявленные требования информационной системы, в которой нужно подписать документ или авторизоваться. Например, для личного кабинета налогоплательщика сайта ФНС можно использовать браузер Internet Explorer не ниже 11 версии, а подписывать документы разрешено только квалифицированной электронной подписью.
Переустановка сертификата подписи может решить и другие ошибки, такие как:
Экспорт сертификата из КриптоПро CSP



Проверяем ключ на не экспортируемость
Электронная подпись – это аналог собственноручной подписи для подписания электронных документов.
Что произойдет, если ваша электронная подпись попадет в руки злоумышленников?
Чтобы устранить ошибку об отсутствии сертификатов в контейнере закрытого ключа, необходимо выполнить следующие действия:








После установки сертификата нужно ещё раз воспользоваться подписью, чтобы убедиться в отсутствии ошибки.
