КАК ИЗВЛЕЧЬ СЕРТИФИКАТ ЭЦП И ПОСТАВИТЬ ЕГО В РЕЕСТР

Многие задаются вопросом: «Как подписывать ЭЦП без флешки?». В этой статье мы расскажем, что нужно сделать, если вы хотите подписывать документы электронной подписью просто и быстро без установки физического носителя в порт USB. Носитель понадобится только один раз — скопировать ЭЦП с флешки на компьютер. Как это правильно сделать, расскажем в нашей инструкции. А если не получится, обращайтесь к нашим специалистам. Мы будем рады помочь!

Обращаем внимание наших читателей, что скопировать ЭЦП, выпущенную Федеральной налоговой службой, способами, описанными ниже не получится. В настоящее время в целях безопасности контейнер закрытого ключа при выпуске ЭЦП защищают от копирования и экспорта. Поэтому стандартными способами скопировать ЭЦП не удастся. Но наши специалисты помогут Вам скопировать ЭЦП, защищенную от копирования удалённо.

вопросы

Из нашей статьи вы узнаете:

Квалифицированная электронная подпись (КЭП, ЭЦП) — это аналог рукописной подписи, который подтверждает личность владельца. Позволяет заверять любые электронные документы.

В аккредитованном удостоверяющем центре пользователю выдают сертификат, закрытый и открытый ключ. Сертификат содержит в себе срок действия подписи и информацию о владельце ЭЦП. Открытый и закрытый ключ нужны для создания и расшифровки КЭП. Эти файлы могут записываться на физический носитель — USB-токен, который внешне напоминает флешку. Чтобы поставить подпись, токен вставляют в компьютер. Для подписи документов без подключения носителя к компьютеру нужно скопировать ключи ЭЦП с флешки на ПК.

В статье — подробная инструкция, как это сделать.

ЭЦП — это устаревшее понятие. Расшифровывается как «электронная цифровая подпись». В настоящее время законодательством закреплено название ЭП, которое расшифровывается как «электронная подпись»

Сохранить сертификат открытого ключа

Файл сертификата открытого ключа электронной подписи может понадобиться:

  • для загрузки на торговую площадку во время регистрации
    ;
  • для отправки сотруднику техподдержки при решении технических проблем с ЭП или торговой площадкой.

Сохраните его из приложения, в котором работаете.

Из панели управления Рутокен

  1. Перейдите в раздел «Подписи» или «Сотрудники/Подписи» (зависит от  конфигурации
    ).
  2. Откройте электронную подпись.
  3. Скачайте сертификат открытого ключа, нажав КАК ИЗВЛЕЧЬ СЕРТИФИКАТ ЭЦП И ПОСТАВИТЬ ЕГО В РЕЕСТР
    .

КАК ИЗВЛЕЧЬ СЕРТИФИКАТ ЭЦП И ПОСТАВИТЬ ЕГО В РЕЕСТР

  1. В меню выберите «Контрагенты/Налогоплательщики». Перейдите в карточку компании, дважды кликнув название.

    КАК ИЗВЛЕЧЬ СЕРТИФИКАТ ЭЦП И ПОСТАВИТЬ ЕГО В РЕЕСТР

  2. На вкладке «Ответственные лица» откройте карточку владельца ЭП — нажмите «Enter», F3 или дважды кликните строку.

    КАК ИЗВЛЕЧЬ СЕРТИФИКАТ ЭЦП И ПОСТАВИТЬ ЕГО В РЕЕСТР

  3. Откройте сведения о сертификате («Enter», F3 или двойной клик по строке).
  4. Нажмите «Сохранить в файл» и укажите каталог.

    КАК ИЗВЛЕЧЬ СЕРТИФИКАТ ЭЦП И ПОСТАВИТЬ ЕГО В РЕЕСТР

  1. Откройте Панель управления Рутокен («Пуск/Панель управления/Панель управления Рутокен») и перейдите на вкладку «Сертификаты».
  2. Выберите ЭП, по которой нужно выгрузить открытый ключ, и нажмите «Экспортировать».
  3. Убедитесь, что выбран пункт «DER-кодированный файл x509 (. CER)».
  4. Нажмите «Обзор» и укажите путь, по которому нужно сохранить файл сертификата.
  5. Кликните «Экспортировать», дождитесь сообщения «Экспорт успешно выполнен».

КАК ИЗВЛЕЧЬ СЕРТИФИКАТ ЭЦП И ПОСТАВИТЬ ЕГО В РЕЕСТР

Готово. Теперь файл сертификата можно отправить контрагенту или загрузить на электронную торговую площадку.

Нашли неточность?
Выделите текст с ошибкой и нажмите ctrl + enter.

Как скопировать из реестра или КриптоПро сертификат ЭЦП на флешку

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

Скопировать ЭЦП на флешку

Копирование сертификата при помощи КриптоПро

Скопировать сертификат из КриптоПро на флешку — наиболее простой и удобный способ. Его используют, если в реестре хранится небольшое количество контейнеров. Процесс происходит в несколько простых шагов:

  • пользователь открывает КриптоПро, переходит во вкладку «‎Сервис»‎ и далее «‎Обзор»‎. В новом окне нужно выбрать имя ключевого контейнера, который будет копироваться;
  • нажать «‎Далее»‎ и задать новое имя для контейнера;

Имя контейнера

  • далее откроется новое окно, где будет указан выбор носителя. Тут можно выбрать как флешку, так и другой диск ПК;

Выбор носителя

  • затем вводится новый пароль;

Введение пароля

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

Папка на флешке с ключами эцп

Перенос сертификатов из реестра через Internet Explorer

Для создания копии дубликата ЭЦП на флешке нужно:

  • в IE открыть «Свойства браузера» / «‎Содержание» / «‎Сертификаты» / «‎Экспорт»;

Экспорт ЭЦП в Эксплорере

  • через правую клавишу мышки в оснастке нужного сертификата выбрать «‎Экспорт»;

Опция Экспорт

  • в мастере переноса сертификатов ЭЦП сначала нажимают «‎Далее», а затем напротив пункта«‎Экспортировать закрытый ключ вместе с сертификатом» ставят галочку;

Мастер переноса ключей

  • если эта область неактивна, значит, ключ защищен от копирования, и данный способ не подходит;

Защита ключа от копирования

  • если все работает, то следующий шаг — выбор формата загрузки;

Формат загрузки контейнера с ключами

  • далее пользователь задает пароль и указывает место хранения закрытого ключа;
  • завершается процесс нажатием «‎Готово».

Ошибка копирования контейнера

Обычно процесс переноса информации проходит без ошибок, но некоторые закрытые ключи Удостоверяющий центр помечает как «‎Недоступные для копирования». Делается это для того, чтобы в случае необходимости пользователи обращались в УЦ за копией. Выглядит ошибка так:

Ошибка копирования контейнера

Если при повторной попытке копирования с использованием утилиты ошибка повторяется, то нужно использовать другой способ переноса информации.

Массовый перенос сертификатов ЭЦП

Данный способ переноса сертификатов ЭЦП подходит как для защищенных ключей, так и для большого объема информации (если нужно скопировать сразу несколько ключей для работы в системе СБИС и т.п.).

Как скопировать ЭЦП на флешку:

  • через командную строку задать команду whoami /USER;

Массовое копирования эцп

  • значение S-1-5-21-551888299-3078463796-888888888-46162 — это SID личной учетной записи. С его помощью можно выгрузить закрытые ключи. Пользователь открывает новую ветку командой:

Копирование Сертификата эцп

  • контейнер keys содержит все закрытые ключи электронной подписи, а в соседнем окне будет список файлов. Правой кнопкой мыши нужно кликнуть по контейнеру и выбрать его экспорт;

Экспорт ключей

Далее пользователю необходимо скопировать и открытые ключи. Для этого вводят команду:

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

Перенос содержимого папки

Для нового хранения используют папку key с закрытыми ключами, сохраненный файл можно открыть через любой текстовый редактор.
В новом файле значение для SID нужно заменить на значение пользователя, после чего подтвердить начало выгрузки сертификатов:

Выгрузка Сертификатов

Если все сделано правильно, то через несколько секунд появится уведомление об успешно выполненной операции:

Перенос на флешку закончен

Необходимость копирования ключей ЭЦП на флешку или другой ПК может быть вызвана неисправностью компьютера, частыми поездками и невозможностью использовать только один носитель, а также работой с большими объемами отчетности. Перенести данные электронной подписи на другой носитель можно при помощи стандартного ПО КриптоПро или Internet Explorer. Эти способы просты, но не подходят для работы с защищенными ключами. Скопировать закрытые ключи, имеющие защиту УЦ, можно при помощи массового переноса через командную строку Windows.

1 звезда
2 звезды
3 звезды
4 звезды
5 звезд
(пока оценок нет)

Как установить сертификат ЭЦП в реестр

Перенос сертификата электронной цифровой подписи (ЭЦП) в реестр необходим в случае, если имеется виртуальная инфраструктура и подключение USB-носителя невозможно или если сертификатов подписи много и нужно работать с 5-ю и более ключами одновременно. Также установка ЭЦП в реестр удобна при частых поездках и сменах офиса: снижается риск потери или порчи носителя. Скопировать сертификат с флешки можно несколькими способами, а весь процесс занимает всего несколько минут и не требует специальных навыков работы с ПК.

Как скопировать сертификат в реестр

Процесс копирования закрытых ключей с флешки на ПК состоит из нескольких этапов: настройки считывателей, самого копирования и установки.

Перенос в реестр

Настройка считывателя

Для установки реестра в список считывателей ключевых носителей пользователь должен:

  • запустить КриптоПро от имени администратора;

Запуск КриптоПро

  • через «Оборудование» нажать «Настроить считыватель»;

Настройка считывателя в КриптоПро

  • в открывшемся новом окне нажать кнопку «Добавить»;

Управление считывателями в КриптоПро

  • затем в мастере установки выбрать, какой считыватель необходимо добавить (реестр, смарт-карту, диски и т.д.);

Выбор считывателя на КриптоПро

  • последовательно нажать «Далее» и «Готово».

Для последующей корректной работы необходимо перезагрузить компьютер.

Копирование

Для копирования сертификата в реестр лучше воспользоваться программой КриптоПро. Пользователь запускает программу и нажимает «Запустить с правами администратора».

Запуск КриптоПро

Затем переходим во вкладку «Сервис» и жмем «Скопировать».

Копирование Серт. в КриптоПро

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

Выбор Серт.Эцп для копирования

В поле «Имя ключевого контейнера» имя отразится в нечитаемом формате. Это нормально.

Имя ключевого контейнера

Нужно нажать «ОК» и «Далее», после чего откроется окно для ввода пин-кода от USB-носителя.

Окно для ПИН-кода

Если пароль не менялся, то стандартный будет:

  • для Рутокен для пользователя: 12345678;
  • для Рутокен для администратора:87654321;
  • для eToken: 1234567890.

После пин-кода нужно задать новое имя личного сертификата в реестре. В КриптоПро это сделать просто.

Имя в реестре

Теперь нужно переложить сертификаты в реестр.

Помещение в реестр

Последний шаг — после копирования контейнера задаем новый пароль.

Новый пароль в реестре эцп

На этом процесс копирования закрытого ключа электронной подписи закончен.

Установка

После копирования установить сертификат ЭЦП на компьютер с флешки в реестр можно 2 способами:

  • через установку личных сертификатов;
  • через просмотр сертификатов в контейнере.

Оба способа используют программу КриптоПро CSP.

Через раздел личных сертификатов

Как установить ЭЦП в реестр при условии, что на ключевом носителе имеется папка *.000 и файл .cer:

  • Запустить КриптоПро и выбрать «Установить личный сертификат» через вкладку «Сервис».

Вкладка Сервис в КриптоПро

  • В мастере установки сертификатов нажать «Далее» и через «Обзор» выбрать расположение файла сертификата.

Выбор файла

  • В новом окне нужно выбрать «Мой компьютер» и далее вид съемного носителя, который содержит закрытый ключ. Затем нажать «Открыть»;

Выбор съемного носителя

  • Далее в соответствующей строке прописывают расположения файла сертификата.

Имя файла Серт. эцп

  • Затем нужно проверить данные сертификата, который необходимо установить, и нажать «Далее».
  • Следующий шаг — это в новом окне выбор ключевого контейнера через кнопку «Обзор».

Выбор ключевого контейнера

  • В списке выбираем реестр, после чего нажимаем «Ок».
  • В строке с именем ключевого контейнера должен автоматически прописаться контейнер с закрытым ключом. Нажать «Далее».
  • Через «Обзор» выбираем хранилище сертификата.

Выбор хранилища

  • Через папку «Личные» выбираем папку «Реестр», а затем нажимаем «Далее».

Последний шаг — завершить установку нажатием кнопки «Готово».

Завершение установки Серт. ЭЦП

Через несколько секунд система выдаст сообщение об успешном завершении установки сертификата электронной подписи.

Через просмотр сертификатов

Данный способ подходит в том случае, если имеется только папка вида *.000.

  • Запустить КриптоПро.
  • Через «Сервис» перейти на вкладку «Просмотреть сертификаты в контейнере».

Просмотр Серт. в контейнере

  • Затем выберите носитель через кнопку «Обзор» и в открывшемся окне выделите нужный реестр.

Выбор контейнера в реестре

  • В строке с именем контейнера должна быть информация о контейнере с закрытым ключом, если все верно, то нужно нажать «Ок».
  • Затем в окне с информацией нужно нажать «Свойства».

Выбор Сертиф. для установки

  • После проверки данных нажать кнопку «Установить».

Установка эцп в реестр

  • В открывшемся мастере импорта нужно выбрать хранилище. Для этого сначала ставят галочку напротив «Поместить все сертификаты в…» и нажимают «Обзор».

Помещение в хранилище

  • Затем через папку «Личные» выбрать папку с носителем реестром и в строке «Название хранилища» нажать «Далее».

В завершении установки нужно лишь «Готово» в мастере установки.

Завершение испорта

Где хранится ключ в реестре

Все установленные на ПК закрытые ключи ЭЦП хранятся в отдельной папке, которая называется реестром. Для просмотра закрытого ключа нужно иметь права доступа администратора. Чтобы открыть реестр, нужно нажать Win+R и в командной строке ввести certmgr.msc.

Просмотр Сертиф. эцп в хранилище

Выбор в хранилище

Чтобы посмотреть информацию об электронной подписи, нужно нажать «Открыть» на выбранном файле.

Информация о эцп

Ошибка при копировании сертификата

Устанавливать электронную подпись на компьютер просто, но иногда в процессе возникает ошибка копирования контейнера. Объясняется она отсутствием разрешения на экспорт ключа, т.к. при создании его не был указан соответствующий пункт. Чтобы скопировать сертификат с флешки и избежать ошибки нужно:

  • Убедиться, что КриптоПро имеет действующую лицензию.
  • Попробовать повторно установить закрытый ключ ЭЦП.
  • Если в имени имеется строка, содержащая данные «_копия_a0b63dd8», то нужно провести копирование одним из способов, соответствующих типу носителя.
  • При переносе ключа поставить галочку «Уникальные имена».

Перенос ключа эцп

  • Проверить, что КриптоПро запущена с правами администратора.

Ошибка запуска КриптоПро

Если сертификат находится на USB-носителе или дискете, или на ПК, то копия делается так:

  • Пользователь устанавливает утилиту CertFix ( https://h.kontur.ru/cf
    ).
  • После запуска утилиты дожидается загрузки списка сертификатов.
  • Нажимает одновременно SHIFT и правой кнопкой мыши кликает по нужному хранилищу.
  • В открывшемся окне выбирает вариант, зависящий от расположения хранилища.

Копирование с носителя

  • При необходимости вводят пароль и повторяют процедуру копирования.

Если сертификат расположен на рутокене:

  1. Подключают токен к ПК.
  2. Запускают утилиту tokens.exe ( https://www.kontur-extern.ru/Files/Modules/CmsFile/Tokens.zip
    ).
  3. Нажимают «Экспорт» у нужного контейнера.
  4. Выбирают место, куда нужно устанавливать сертификат.
  5. В следующем окне вводят новое имя для контейнера.
  6. Устанавливают утилиту CertFix и повторяют действия из предыдущего способа копирования.

Скопировать сертификат с флэшки на ПК нужно в случае, если пользователь работает сразу с несколькими ключами ЭЦП или часто путешествует. Установка подписи на ПК поможет снизить риски потери или порчи носителя, а процесс занимает всего несколько минут. Для копирования используется стандартная лицензионная программа КриптоПро, а установить сертификат можно двумя способами. Первый использует путь через «‎Личные сертификаты»‎, а второй — через «‎Просмотр ключей в контейнере»‎. Иногда при копировании закрытых ключей возникает ошибка, т.к. Э ЦП имеет встроенную защиту от экспорта.  В этом случае нужно установить специальную утилиту и повторить весь путь копирования.

Время на прочтение

Так уж вышло, что несмотря на относительно неплохое понимание инфраструктуры открытых ключей, содержимое *.crt файлов всегда оставалось для меня полнейшей загадкой.

Нет, не поймите неправильно. Я знаю, что x.509 сертификат содержит информацию о владельце, открытый ключ, сведения об удостоверяющем центре и электронную цифровую подпись. Но при установке очередного сертификата меня всегда мучило любопытство.

Чем отличается идентификатор ключа от отпечатка? Какие данные сертификата подписываются, а какие нет? И что за структура данных позволяет хранить всю эту информацию, сводя избыточность к минимуму.

Но вот наконец-то любопытство перебороло лень и в данном посте я постараюсь описать структуру x.509 сертификатов и ответить на эти и другие вопросы.

Часть 1. Самоподписанный сертификат

Для начала рассмотрим вариант самоподписанного сертификата корневого уровня.

Для упрощения задачи сгенерируем сертификат, который будет содержать только необходимые параметры:

  • Версия сертификата
  • Серийный номер
  • Алгоритм подписи
  • Сведения об издателе
  • Дата начала действия сертификата
  • Дата окончания действия сертификата
  • Сведения о владельце
  • Открытый ключ

Сделать это можно с помощью библиотеки Bouncy Castle, следующим образом:

   private void button1_Click(object sender, EventArgs e)
        {            

            var KeyGenerate = new RsaKeyPairGenerator();

            KeyGenerate.Init(new KeyGenerationParameters(new SecureRandom(new CryptoApiRandomGenerator()), 1024));

            AsymmetricCipherKeyPair kp = KeyGenerate.GenerateKeyPair();

            var gen = new X509V3CertificateGenerator();

            var certName = new X509Name("CN=CA");
            var serialNo = new BigInteger("1",10);            

            gen.SetSerialNumber(serialNo);
            gen.SetSubjectDN(certName);            
            gen.SetIssuerDN(certName);
            gen.SetNotAfter(DateTime.Now.AddYearsИмя сертификата	CA
Издатель	CA
Версия сертификата	3
Серийный номер	0x1
Недействителен до...	15.09.2013 15:35:00 GMT
Недействителен после...	22.09.2113 15:35:00 GMT
Цифровая подпись (SHA-1)	F9 AD 58 B5 50 3D F6 36 5E B8 89 D4 DC C8 5F CC 25 4B 93 A2
Цифровая подпись (SHA-256)	42 02 24 20 4E 8F 3A 3E 31 38 88 E5 C5 E7 C3 03 14 3A A6 52 EA 78 B9 77 42 5B 99 EB 4B BA 23 82
Открытый ключ(1024 битный)		Алгоритм открытого ключа	rsaEncryption
Модуль	
00: 8D 80 B5 8E 80 8E 94 D1 04 03 6A 45 1A 54 5E 7E
10: EE 6D 0C CB 0B 82 03 F1 7D C9 6F ED 52 02 B2 08
20: C3 48 D1 24 70 C3 50 C2 1C 40 BC B5 9D F8 E8 A8
30: 41 16 7B 0B 34 1F 27 8D 32 2D 38 BA 18 A5 31 A9
40: E3 15 20 3D E4 0A DC D8 CD 42 B0 E3 66 53 85 21
50: 7C 90 13 E9 F9 C9 26 5A F3 FF 8C A8 92 25 CD 23
60: 08 69 F4 A2 F8 7B BF CD 45 E8 19 33 F1 AA E0 2B
70: 92 31 22 34 60 27 2E D7 56 04 8B 1B 59 64 77 5F
Экспонента	01 00 01                                       

Подпись		Алгоритм подписи	sha1WithRSAEncryption
Подпись	
00: 0A 1C ED 77 F4 79 D5 EC 73 51 32 25 09 61 F7 00
10: C4 64 74 29 86 5B 67 F2 3D A9 39 34 6B 3C A9 92
20: B8 BF 07 13 0B A0 9B DF 41 E2 8A F6 D3 17 53 E1
30: BA 7F C0 D0 BC 10 B7 9B 63 4F 06 D0 7B AC C6 FB
40: CE 95 F7 8A 72 AA 10 EA B0 D1 6D 74 69 5E 20 68
50: 5D 1A 66 28 C5 59 33 43 DB EE DA 00 80 99 5E DD
60: 17 AC 43 36 1E D0 5B 06 0F 8C 6C 82 D3 BB 3E 2B
70: A5 F1 94 FB 53 7B B0 54 22 6F F6 4C 18 1B 72 1C
);
            gen.SetNotBefore(DateTime.Now);
            gen.SetSignatureAlgorithm("SHA1WITHRSA");            
            gen.SetPublicKey(kp.Public);     
            var myCert = gen.Generate(kp.Private);
            byte[] result = DotNetUtilities.ToX509Certificate(myCert).Export(X509ContentType.Cert);

            FileStream fs = new FileStream("D:\\test1.crt", FileMode.CreateNew);
            fs.Write(result, 0, result.Length);
            fs.Flush();
            fs.Close();
        }
  
  

В результате выполнения данной процедуры будет создан стандартный x.509 сертификат, который, будучи открытым с помощью hex-редактора, выглядит вот таким чудесным образом:

   30 82 01 8F 30 81 F9 A0  03 02 01 02 02 01 01 30
0D 06 09 2A 86 48 86 F7  0D 01 01 05 05 00 30 0D
31 0B 30 09 06 03 55 04  03 0C 02 43 41 30 20 17
0D 31 33 30 39 31 35 31  35 33 35 30 32 5A 18 0F
32 31 31 33 30 39 32 32  31 35 33 35 30 32 5A 30
0D 31 0B 30 09 06 03 55  04 03 0C 02 43 41 30 81
9F 30 0D 06 09 2A 86 48  86 F7 0D 01 01 01 05 00
03 81 8D 00 30 81 89 02  81 81 00 8D 80 B5 8E 80
8E 94 D1 04 03 6A 45 1A  54 5E 7E EE 6D 0C CB 0B
82 03 F1 7D C9 6F ED 52  02 B2 08 C3 48 D1 24 70
C3 50 C2 1C 40 BC B5 9D  F8 E8 A8 41 16 7B 0B 34
1F 27 8D 32 2D 38 BA 18  A5 31 A9 E3 15 20 3D E4
0A DC D8 CD 42 B0 E3 66  53 85 21 7C 90 13 E9 F9
C9 26 5A F3 FF 8C A8 92  25 CD 23 08 69 F4 A2 F8
7B BF CD 45 E8 19 33 F1  AA E0 2B 92 31 22 34 60
27 2E D7 56 04 8B 1B 59  64 77 5F 02 03 01 00 01
30 0D 06 09 2A 86 48 86  F7 0D 01 01 05 05 00 03
81 81 00 0A 1C ED 77 F4  79 D5 EC 73 51 32 25 09
61 F7 00 C4 64 74 29 86  5B 67 F2 3D A9 39 34 6B
3C A9 92 B8 BF 07 13 0B  A0 9B DF 41 E2 8A F6 D3
17 53 E1 BA 7F C0 D0 BC  10 B7 9B 63 4F 06 D0 7B
AC C6 FB CE 95 F7 8A 72  AA 10 EA B0 D1 6D 74 69
5E 20 68 5D 1A 66 28 C5  59 33 43 DB EE DA 00 80
99 5E DD 17 AC 43 36 1E  D0 5B 06 0F 8C 6C 82 D3
BB 3E 2B A5 F1 94 FB 53  7B B0 54 22 6F F6 4C 18
1B 72 1C
  
  

Тот же самый сертификат, но уже открытый с помощью стандартных средств windows:

   Имя сертификата	CA
Издатель	CA
Версия сертификата	3
Серийный номер	0x1
Недействителен до...	15.09.2013 15:35:00 GMT
Недействителен после...	22.09.2113 15:35:00 GMT
Цифровая подпись (SHA-1)	F9 AD 58 B5 50 3D F6 36 5E B8 89 D4 DC C8 5F CC 25 4B 93 A2
Цифровая подпись (SHA-256)	42 02 24 20 4E 8F 3A 3E 31 38 88 E5 C5 E7 C3 03 14 3A A6 52 EA 78 B9 77 42 5B 99 EB 4B BA 23 82
Открытый ключ(1024 битный)		Алгоритм открытого ключа	rsaEncryption
Модуль	
00: 8D 80 B5 8E 80 8E 94 D1 04 03 6A 45 1A 54 5E 7E
10: EE 6D 0C CB 0B 82 03 F1 7D C9 6F ED 52 02 B2 08
20: C3 48 D1 24 70 C3 50 C2 1C 40 BC B5 9D F8 E8 A8
30: 41 16 7B 0B 34 1F 27 8D 32 2D 38 BA 18 A5 31 A9
40: E3 15 20 3D E4 0A DC D8 CD 42 B0 E3 66 53 85 21
50: 7C 90 13 E9 F9 C9 26 5A F3 FF 8C A8 92 25 CD 23
60: 08 69 F4 A2 F8 7B BF CD 45 E8 19 33 F1 AA E0 2B
70: 92 31 22 34 60 27 2E D7 56 04 8B 1B 59 64 77 5F
Экспонента	01 00 01                                       

Подпись		Алгоритм подписи	sha1WithRSAEncryption
Подпись	
00: 0A 1C ED 77 F4 79 D5 EC 73 51 32 25 09 61 F7 00
10: C4 64 74 29 86 5B 67 F2 3D A9 39 34 6B 3C A9 92
20: B8 BF 07 13 0B A0 9B DF 41 E2 8A F6 D3 17 53 E1
30: BA 7F C0 D0 BC 10 B7 9B 63 4F 06 D0 7B AC C6 FB
40: CE 95 F7 8A 72 AA 10 EA B0 D1 6D 74 69 5E 20 68
50: 5D 1A 66 28 C5 59 33 43 DB EE DA 00 80 99 5E DD
60: 17 AC 43 36 1E D0 5B 06 0F 8C 6C 82 D3 BB 3E 2B
70: A5 F1 94 FB 53 7B B0 54 22 6F F6 4C 18 1B 72 1C
  
  

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

Прежде всего, нужно отметить, что файл *.crt хранит информацию о сертификате в закодированном виде. Для кодирования применяется особый язык, называемый ASN.1.

ASN.1 — стандарт записи, описывающий структуры данных для представления, кодирования, передачи и декодирования данных. Wikipedia

С помощью языка ASN.1 можно описывать сложные структуры, состоящие из данных различных типов. Типичный пример ASN.1-файла выглядит как-то так:

   SEQUENCE(3 elem)
	SEQUENCE(7 elem)
		[0](1 elem)
			INTEGER 2
		INTEGER 1
		SEQUENCE(2 elem)
			OBJECT IDENTIFIER 1.2.840.113549.1.1.5
			NULL
		SEQUENCE(1 elem)
			SET(1 elem)
				SEQUENCE(2 elem)
					OBJECT IDENTIFIER 2.5.4.3
					UTF8String CA
		SEQUENCE(2 elem)
			UTCTime 13-09-15 15:35:02 UTC
			GeneralizedTime 2113-09-22 15:35:02 UTC
		SEQUENCE(1 elem)
			SET(1 elem)
				SEQUENCE(2 elem)
					OBJECT IDENTIFIER 2.5.4.3
					UTF8String CA
		SEQUENCE(2 elem)
			SEQUENCE(2 elem)
				OBJECT IDENTIFIER 1.2.840.113549.1.1.1
				NULL
			BIT STRING(1 elem)
				SEQUENCE(2 elem)
					INTEGER(1024 bit)
					INTEGER 65537
		SEQUENCE(2 elem)
			OBJECT IDENTIFIER 1.2.840.113549.1.1.5
			NULL
	BIT STRING(1024 bit)
  
  

Однако ASN.1 разрабатывался в те светлые времена, когда «640 КБ должно было хватать каждому» и тратить место на такую громоздкую запись не было никакой возможности. Поэтому, в целях экономии места, а также более удобной обработки хранимой в ASN.1-форме информации, был разработан специальный метод кодирования — DER.

DER-кодировка описывается следующим правилом. Первым записывается байт, характеризующий тип данных, затем последовательность байтов хранящих сведения о длине данных и затем уже записываются сами данные.

К примеру, для кодировки целого числа INTEGER 65537 используется следующая форма:

01 00 01.

Здесь первый байт 02, определяет тип INTEGER (полную таблицу типов вы можете найти например тут
), второй байт 03 показывает длину блока. А следующие за этим байты 01 00 01, являются шестнадцатеричной записью нашего числа 65537.

В нашем случае, для описание простейшего самоподписаного сертификата, достаточно 9 типов данных. Приведем таблицу кодирования для этих типов:

Зная как кодируется каждый из этих типов, мы можем попытаться распарсить наш *.crt файл.

82 01 8F
02 01

2A 86 48 86 F7 0D 01 01 05

55 04 03 43 41

31 33 30 39 31 35 31 35 33 35 30 32 5A

32 31 31 33 30 39 32 32 31 35 33 35 30 32 5A

55 04 03 43 41

9F 2A 86 48 86 F7 0D 01 01 01

00 00 8D 80 B5 8E 80

8E 94 D1 04 03 6A 45 1A 54 5E 7E EE 6D 0C CB 0B

82 03 F1 7D C9 6F ED 52 02 B2 08 C3 48 D1 24 70

C3 50 C2 1C 40 BC B5 9D F8 E8 A8 41 16 7B 0B 34

1F 27 8D 32 2D 38 BA 18 A5 31 A9 E3 15 20 3D E4

0A DC D8 CD 42 B0 E3 66 53 85 21 7C 90 13 E9 F9

C9 26 5A F3 FF 8C A8 92 25 CD 23 08 69 F4 A2 F8

7B BF CD 45 E8 19 33 F1 AA E0 2B 92 31 22 34 60

27 2E D7 56 04 8B 1B 59 64 77 5F 01 00 01

2A 86 48 86 F7 0D 01 01 05

00 0A 1C ED 77 F4 79 D5 EC 73 51 32 25 09

61 F7 00 C4 64 74 29 86 5B 67 F2 3D A9 39 34 6B

3C A9 92 B8 BF 07 13 0B A0 9B DF 41 E2 8A F6 D3

17 53 E1 BA 7F C0 D0 BC 10 B7 9B 63 4F 06 D0 7B

AC C6 FB CE 95 F7 8A 72 AA 10 EA B0 D1 6D 74 69

5E 20 68 5D 1A 66 28 C5 59 33 43 DB EE DA 00 80

99 5E DD 17 AC 43 36 1E D0 5B 06 0F 8C 6C 82 D3

BB 3E 2B A5 F1 94 FB 53 7B B0 54 22 6F F6 4C 18

1B 72 1C

Преобразуя байты-идентификаторы типов и убирая байты описывающие длину блоков получим следующую структуру:

   SEQUENCE(3 elem)
	SEQUENCE(7 elem)
		[0](1 elem)
			INTEGER 2
		INTEGER 1
		SEQUENCE(2 elem)
			OBJECT IDENTIFIER 1.2.840.113549.1.1.5
			NULL
		SEQUENCE(1 elem)
			SET(1 elem)
				SEQUENCE(2 elem)
					OBJECT IDENTIFIER 2.5.4.3
					UTF8String CA
		SEQUENCE(2 elem)
			UTCTime 13-09-15 15:35:02 UTC
			GeneralizedTime 2113-09-22 15:35:02 UTC
		SEQUENCE(1 elem)
			SET(1 elem)
				SEQUENCE(2 elem)
					OBJECT IDENTIFIER 2.5.4.3
					UTF8String CA
		SEQUENCE(2 elem)
			SEQUENCE(2 elem)
				OBJECT IDENTIFIER 1.2.840.113549.1.1.1
				NULL
			BIT STRING(1 elem)
				SEQUENCE(2 elem)
					INTEGER 00: 8D 80 B5 8E 80 8E 94 D1 04 03 6A 45 1A 54 5E 7E
						        EE 6D 0C CB 0B 82 03 F1 7D C9 6F ED 52 02 B2 08
						        C3 48 D1 24 70 C3 50 C2 1C 40 BC B5 9D F8 E8 A8
						        41 16 7B 0B 34 1F 27 8D 32 2D 38 BA 18 A5 31 A9
						        E3 15 20 3D E4 0A DC D8 CD 42 B0 E3 66 53 85 21
						        7C 90 13 E9 F9 C9 26 5A F3 FF 8C A8 92 25 CD 23
						        08 69 F4 A2 F8 7B BF CD 45 E8 19 33 F1 AA E0 2B
						        92 31 22 34 60 27 2E D7 56 04 8B 1B 59 64 77 5F
					INTEGER 65537
		SEQUENCE(2 elem)
			OBJECT IDENTIFIER 1.2.840.113549.1.1.5
			NULL
	BIT STRING 00: 0A 1C ED 77 F4 79 D5 EC 73 51 32 25 09 61 F7 00
		           C4 64 74 29 86 5B 67 F2 3D A9 39 34 6B 3C A9 92
		           B8 BF 07 13 0B A0 9B DF 41 E2 8A F6 D3 17 53 E1
		           BA 7F C0 D0 BC 10 B7 9B 63 4F 06 D0 7B AC C6 FB
		           CE 95 F7 8A 72 AA 10 EA B0 D1 6D 74 69 5E 20 68
		           5D 1A 66 28 C5 59 33 43 DB EE DA 00 80 99 5E DD
		           17 AC 43 36 1E D0 5B 06 0F 8C 6C 82 D3 BB 3E 2B
		           A5 F1 94 FB 53 7B B0 54 22 6F F6 4C 18 1B 72 1C
  
  

Это уже более похоже на то, что мы видим при открытии сертификатов в браузере или Windows. Пробежимся по каждому элементу:

  • INTEGER 2
    — целое число, описывающее версию сертификата. Для сертификатов версии 1 равно 0.
  • INTEGER 1
    — серийный номер нашего сертификата.
  • OBJECT IDENTIFIER 1.2.840.113549.1.1.5
    — последовательность, описывающая алгоритм цифровой подписи. Данная последовательность описывает sha1WithRSAEncryption.
  • OBJECT IDENTIFIER 2.5.4.3
    — служит индикатором того, что следующее поле описывает какое либо сведение об издателе. Последовательность 2.5.4.3, описывается свойство CN(common name) — общепринятое имя.
  • UTF8String CA
    — имя издателя.
  • UTCTime 13-09-15 15:35:02 UTC
    — дата начала действия сертификата.
  • GeneralizedTime 2113-09-22 15:35:02 UTC
    — дата окончания действия сертификата.
  • OBJECT IDENTIFIER 2.5.4.3
    — описывает тип информации о владельце.
  • UTF8String CA
    — имя владельца.
  • OBJECT IDENTIFIER 1.2.840.113549.1.1.1
    — характеризует алгоритм ключа, в данном случае rsaEncryption.
  • INTEGER 00:
    — открытый ключ сертификата.
  • BIT STRING 00:
    — подпись сертификата.

Важным моментом, о котором стоит особенно упомянуть являются данные, для которых вычисляется подпись. Интуитивно может показаться, что подписываются все данные идущие до последнего поля BIT STRING, содержащего подпись. Но на самом деле это не так. В стандарте x.509 подписывается определенная часть сертификата, называемая TBS-сертификат (to be signed). В TSB-сертификат входит последовательность SEQUENCE второго уровня со всеми вложенными данными.

   	SEQUENCE(7 elem)
		[0](1 elem)
			INTEGER 2
		INTEGER 1
		SEQUENCE(2 elem)
			OBJECT IDENTIFIER 1.2.840.113549.1.1.5
			NULL
		SEQUENCE(1 elem)
			SET(1 elem)
				SEQUENCE(2 elem)
					OBJECT IDENTIFIER 2.5.4.3
					UTF8String CA
		SEQUENCE(2 elem)
			UTCTime 13-09-15 15:35:02 UTC
			GeneralizedTime 2113-09-22 15:35:02 UTC
		SEQUENCE(1 elem)
			SET(1 elem)
				SEQUENCE(2 elem)
					OBJECT IDENTIFIER 2.5.4.3
					UTF8String CA
		SEQUENCE(2 elem)
			SEQUENCE(2 elem)
				OBJECT IDENTIFIER 1.2.840.113549.1.1.1
				NULL
			BIT STRING(1 elem)
				SEQUENCE(2 elem)
					INTEGER 00: 8D 80 B5 8E 80 8E 94 D1 04 03 6A 45 1A 54 5E 7E
						        EE 6D 0C CB 0B 82 03 F1 7D C9 6F ED 52 02 B2 08
						        C3 48 D1 24 70 C3 50 C2 1C 40 BC B5 9D F8 E8 A8
						        41 16 7B 0B 34 1F 27 8D 32 2D 38 BA 18 A5 31 A9
						        E3 15 20 3D E4 0A DC D8 CD 42 B0 E3 66 53 85 21
						        7C 90 13 E9 F9 C9 26 5A F3 FF 8C A8 92 25 CD 23
						        08 69 F4 A2 F8 7B BF CD 45 E8 19 33 F1 AA E0 2B
						        92 31 22 34 60 27 2E D7 56 04 8B 1B 59 64 77 5F
					INTEGER 65537
  
  

Т.о. если перед вами будет стоять задача проверить ЭЦП x.509 сертификата, то для этого сперва необходимо извлечь TBS-сертификат.

Еще одно замечание относится к отпечатку сертификата. Как видите сам сертификат не содержит никаких сведений об отпечатке. Это объясняется тем, что отпечаток представляет собой обычное хеш-значение SHA-1 от всего файла сертификата, со всеми его полями, включая подпись издателя. Поэтому хранить отпечаток не обязательно, можно просто вычислять хеш при каждом просмотре сертификата.

Часть 2. Сертификат 2-го уровня

   private void button2_Click(object sender, EventArgs e)
        {            

            var KeyGenerate = new RsaKeyPairGenerator();

            KeyGenerate.Init(new KeyGenerationParameters(new SecureRandom(new CryptoApiRandomGenerator()), 1024));

            AsymmetricCipherKeyPair kp2 = kpgen.GenerateKeyPair();

            var gen2 = new X509V3CertificateGenerator();

            var certName = new X509Name("CN=CA");
            var serialNo = new BigInteger("1",10);   

            var certName2 = new X509Name("CN=User");
            var certNameOwner2 = new X509Name("CN=User");
            var serialNo2 = new BigInteger("2", 10);            

            gen2.SetSerialNumber(serialNo2);
            gen2.SetSubjectDN(certName2);
            gen2.SetIssuerDN(certName);
            gen2.SetNotAfter(DateTime.Now.AddYears

); gen2.SetNotBefore(DateTime.Now.Subtract(new TimeSpan(7, 0, 0, 0))); gen2.SetSignatureAlgorithm("SHA1WITHRSA"); gen2.SetPublicKey(kp2.Public); gen2.AddExtension( X509Extensions.AuthorityKeyIdentifier.Id, false, new AuthorityKeyIdentifier( SubjectPublicKeyInfoFactory.CreateSubjectPublicKeyInfo(kp.Public), new GeneralNames(new GeneralName(certName)), serialNo)); var newCert2 = gen2.Generate(kp.Private); byte[] result = DotNetUtilities.ToX509Certificate(newCert2).Export(X509ContentType.Cert); FileStream fs = new FileStream("D:\\FullTest.crt", FileMode.CreateNew); fs.Write(result, 0, result.Length); fs.Flush(); fs.Close(); }

Распарсив наш сертификат и преобразовав его к читаемому виду, получим следующую красоту:

   SEQUENCE(3 elem)
	SEQUENCE(8 elem)
		[0](1 elem)
			INTEGER2
		INTEGER2
		SEQUENCE(2 elem)
			OBJECT IDENTIFIER1.2.840.113549.1.1.5
			NULL
		SEQUENCE(1 elem)
			SET(1 elem)
				SEQUENCE(2 elem)
					OBJECT IDENTIFIER2.5.4.3
					UTF8StringCA
		SEQUENCE(2 elem)
			UTCTime13-09-15 15:35:02 UTC
			GeneralizedTime2113-09-22 15:35:02 UTC
		SEQUENCE(1 elem)
			SET(1 elem)
				SEQUENCE(2 elem)
					OBJECT IDENTIFIER2.5.4.3
					UTF8StringUser
		SEQUENCE(2 elem)
			SEQUENCE(2 elem)
				OBJECT IDENTIFIER1.2.840.113549.1.1.1
				NULL
			BIT STRING(1 elem)
				SEQUENCE(2 elem)
					INTEGER(1024 bit)
					INTEGER65537
		[3](1 elem)
			SEQUENCE(1 elem)
				SEQUENCE(2 elem)
					OBJECT IDENTIFIER2.5.29.35
					OCTET STRING(1 elem)
						SEQUENCE(3 elem)
							[0](20 byte) 6FBC9476035CB50061524C4ABE9064C9C4C32E6B
							[1](1 elem)
								[4](1 elem)
									SEQUENCE(1 elem)
										SET(1 elem)
											SEQUENCE(2 elem)
												OBJECT IDENTIFIER2.5.4.3
												UTF8StringCA
							[2](1 byte) 01
	SEQUENCE(2 elem)
		OBJECT IDENTIFIER1.2.840.113549.1.1.5
		NULL
	BIT STRING(1024 bit)
  
  

Как видите, единственное отличие от самоподписанного сертификата заключается в наличие дополнительного блока:

   [3](1 elem)
	SEQUENCE(1 elem)
		SEQUENCE(2 elem)
			OBJECT IDENTIFIER 2.5.29.35
			OCTET STRING(1 elem)
				SEQUENCE(3 elem)
					[0](20 byte) 6FBC9476035CB50061524C4ABE9064C9C4C32E6B
					[1](1 elem)
						[4](1 elem)
							SEQUENCE(1 elem)
								SET(1 elem)
									SEQUENCE(2 elem)
										OBJECT IDENTIFIER 2.5.4.3
										UTF8String CA
					[2](1 byte) 01
  
  

который содержит сведения об издателе сертификата и его открытом ключе. Вот тут я хотел бы добавить одно замечание. Без этого блока сертификат все равно будет оставаться рабочим, т.к. информация хранящаяся здесь считается не более, чем дополнением, более точно указывающим каким из ключей издателя был подписан текущий сертификат. Рассмотрим каждый элемент блока отдельно.

  • OBJECT IDENTIFIER 2.5.29.35
    — набор цифр описывает какая информация хранится в блоке. Последовательность 2.5.29.35 означает, что перед нами информация о ключе подписанта.
  • [ 0](20 byte) 6FBC9476035CB50061524C4ABE9064C9C4C32E6B
    — идентификатор ключа издателя. S HA-1 хеш от закодированного с помощью DER открытого ключа.
  • OBJECT IDENTIFIER 2.5.4.3
    — определяет, что следующее поле представляет имя издателя.
  • [2](1 byte) 01
    — серийный номер сертификата издателя.

Напоследок откроем полученный сертификат с помощью стандартных средств и убедимся, что все необходимые данные на месте:

   Имя сертификата	User
Издатель	CA
Версия сертификата	3
Серийный номер	0x2
Недействителен до...	15.09.2013 15:35:00 GMT
Недействителен после...	22.09.2113 15:35:00 GMT
Цифровая подпись (SHA-1)	A4 E7 9B AD E7 E2 67 B1 8A D6 6F F9 61 0D 42 A9 DB C3 A9 67
Цифровая подпись (SHA-256)	39 A2 D8 47 CE F7 E7 C3 81 62 8A 4A 65 F3 4A E8 6F 12 B7 8A 1A ED F9 94 6E 57 19 F6 39 DA B7 8F
Открытый ключ(1024 битный)		Алгоритм открытого ключа	rsaEncryption
Модуль	00: A7 BA 25 52 5F 0D 82 EE 2C B1 F0 E1 E2 0D 3F B2
10: 25 06 DB A2 5A B0 D3 00 D7 2C 1F 85 8C 71 73 95
20: 8A 06 6C 04 6D 4B AB 15 50 1E 53 92 9F BA 6E 04
30: 5D 71 6B C0 0A 8E 6C 51 51 2F 27 2E BB 8E C9 FF
40: 9C C2 E2 45 56 26 6B 61 C5 C1 67 0C 6F A9 8A 16
50: 76 8E 12 DB 38 A2 B3 09 6F B3 39 DD 9B EB 98 B7
60: 61 9F 9E 18 65 4F DB AB 74 72 79 AC 14 7C 24 D8
70: 47 16 5B 17 30 CB 6E FB 45 5E D1 04 37 FA 85 C3
Экспонента	01 00 01                                       

Подпись		Алгоритм подписи	sha1WithRSAEncryption
Подпись	00: 2C 1C D9 7F B4 F2 D0 10 16 7A B7 29 D6 89 A4 A1
10: 2B 4A 78 1B 85 38 53 83 4E 71 3C 81 C0 A5 AD A8
20: AB 16 59 F4 D3 A7 7E 83 2F AE 21 75 9E 91 F6 FC
30: 93 A3 AE F5 27 CF 5F 0B C9 5F DC E1 75 26 D5 39
40: 74 32 39 B9 BD 95 79 A7 EE 02 0C 56 0A A9 A5 83
50: F8 86 0D 6F B5 7F C5 FE 23 0B 4B 5C 65 A8 BC 89
60: 36 37 B3 53 74 BB 25 66 10 F8 53 AA EF 05 9E ED
70: 74 04 E9 3D F4 DF 85 71 37 57 5D E7 D8 C6 8E EA

Расширения		X509v3 Authority Key Identifier	keyid:6F:BC:94:76:03:5C:B5:00:61:52:4C:4A:BE:90:64:C9:C4:C3:2E:6B DirName:/CN=CA serial:01
  
  

Заключение

Тех усидчивых людей, которые продрались сквозь все эти ASN.1 выражения и шестнадцатеричные наборы данных, я хотел бы поблагодарить за прочтение. Надеюсь вам было хоть немного интересно. И стало чуточку понятнее, что же такое на самом деле X.509 сертификат.

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

  1. RFC5280
    — спецификация x.509 сертификата и списка отзывов сертификатов.
  2. Руководство по выживанию — SSL/TLS и сертификаты X.509
  3. ASN.1 простыми словами
    , вариант статьи для хабра
  4. on-line утилита для декодирования DER-файлов
  5. Первичный стандарт ITU-T X.509 (+ русский перевод)
    . Спасибо ystr
    за ссылку.

Копируем сертификат ЭЦП через КриптоПро CSP

Этот способ подходит для ОС Windows.

Шаг 1. Вставьте носитель в USB-разъём.

Шаг 2. Откройте приложение КриптоПро CSP и выберите вкладку «Сервис».

Шаг 3. Найдите раздел «Контейнер закрытого ключа» и нажмите на кнопку «Скопировать».

«Скопировать»1

Шаг 4. Откроется окно «Копирование контейнера закрытого ключа». В нём нажмите на кнопку «Обзор».

«Обзор»2

Шаг 5. Из списка контейнеров выберите тот, что установлен на флешку-токен, и нажмите «ОК».

нажмите «ОК»3

Шаг 6. Придумайте название для нового контейнера закрытого ключа и нажмите «Готово».

«Готово»4

Шаг 7. Откроется окно «Выбор ключевого носителя КриптоПро CSP». Чтобы использовать реестр Windows, выберите опцию «Реестр» и нажмите «Готово».

КриптоПро CSP5

Шаг 8. Для того чтобы защитить вашу электронную подпись от использования посторонними, придумайте пароль и введите его в поля на экране.

поля на экране6

После этого появится сообщение о том, что сертификат успешно скопирован в локальный реестр. Нажмите «ОК».

Нажмите «ОК»7

Шаг 9. Снова откройте КриптоПро CPS, найдите раздел «Сертификаты в контейнере закрытого ключа». Выберите «Просмотреть сертификаты в контейнере».

Сертификаты в контейнере8

Шаг 10. В открывшемся окне нажмите на кнопку «Обзор». В списке найдите новый контейнер по считывателю «Реестр» и по заданному вами названию.

«Обзор»9

Шаг 11. Выделите нужный контейнер и нажмите «ОК».

нажмите «ОК»10

Шаг 12. Появится окно с информацией о сертификате, где указаны владелец ЭЦП, поставщик и срок действия. Проверьте информацию и нажмите «Установить».

владелец ЭЦП 11

Шаг 13. Если установка прошла успешно, появится уведомление о том, что сертификат установлен в хранилище «Личное». Нажмите «ОК».

«Личное»12

Как скопировать ЭЦП на компьютер с помощью КриптоПро CSP

  1. Вставьте носитель с ЭЦП в порт USB. Если подключенное устройство не определяется системой, попробуйте подключить в другой порт или установить драйвера для носителя.
  2. Откройте приложение КриптоПро CSP.

Наша инструкция на тот случай, если у вас приложение не установлено.

  1. Перейдите во вкладку «Сервис»
    .
  2. В разделе «Контейнер закрытого ключа»
    нажмите на кнопку «Скопировать»
    .
crypto pro csp service copy
  1. Появится новое окно «Копирование контейнера закрытого ключа». Нажмите на кнопку «Обзор»
    .
crypto pro csp container key
  1. Выберите контейнер, который размещён на флешке с ЭЦП. В нашем случае надо выбрать считыватель «Rutoken Lite». Нажмите кнопку «ОК»
    .
crypto pro csp choise container key
  1. Придумайте название контейнеру закрытого ключа или оставьте название по умолчанию и нажмите кнопку «Готово»
    .
crypto pro csp container name
  1. После этого появится новое окно «Выбор ключевого носителя КриптоПро CSP». Выберите размещение контейнера в Реестре
    . Нажмите кнопку «ОК»
    . В этом случае в качестве хранилища ключей будет использован реестр Windows.
crypto pro csp container registry
  1. Рекомендуем ввести пароль для нового контейнера с электронной цифровой подписью, чтобы избежать использования ЭЦП третьими лицами. После того как написали и запомнили пароль, нажмите «ОК»
    .
crypto pro csp container password
  1. После этого приложение КриптоПро CSP сообщит, что контейнер с флешки успешно скопирован в выбранное вами расположение — локальный реестр. Нажмите кнопку «ОК»
    .
crypto pro csp container copy success
  1. Вернитесь в окно «КриптоПро CSP» и перейдите в раздел «Сертификаты в контейнере закрытого ключа». Нажмите кнопку «Просмотреть сертификаты в контейнере…»
    .
crypto pro certificates in container
  1. Появится соответствующее окно. Нажмите кнопку «Обзор»
    .
crypto pro certificates in container view
  1. Найдите только что скопированный контейнер по считывателю «Реестр» и имени, которое вы ранее присвоили контейнеру.
  2. Нажмите на контейнер и подтвердите выбор, нажав кнопку «ОК»
    .
crypto pro certificates in container choise
  1. После этого откроется окно с возможностью просмотра информации о сертификате (субъекте, поставщике и сроке действия). Нажмите кнопку «Установить»

    .


  • Если всё прошло без ошибок, появится новое окно. Программа сообщит, что «Сертификат был установлен в хранилище «Личное» текущего пользователя. Нажмите кнопку

    «ОК»

    . Имя сертификата User
    Издатель CA
    Версия сертификата 3
    Серийный номер 0x2
    Недействителен до... 15.09.2013 15:35:00 GMT
    Недействителен после... 22.09.2113 15:35:00 GMT
    Цифровая подпись (SHA-1) A4 E7 9B AD E7 E2 67 B1 8A D6 6F F9 61 0D 42 A9 DB C3 A9 67
    Цифровая подпись (SHA-256) 39 A2 D8 47 CE F7 E7 C3 81 62 8A 4A 65 F3 4A E8 6F 12 B7 8A 1A ED F9 94 6E 57 19 F6 39 DA B7 8F
    Открытый ключ(1024 битный) Алгоритм открытого ключа rsaEncryption
    Модуль 00: A7 BA 25 52 5F 0D 82 EE 2C B1 F0 E1 E2 0D 3F B2
    10: 25 06 DB A2 5A B0 D3 00 D7 2C 1F 85 8C 71 73 95
    20: 8A 06 6C 04 6D 4B AB 15 50 1E 53 92 9F BA 6E 04
    30: 5D 71 6B C0 0A 8E 6C 51 51 2F 27 2E BB 8E C9 FF
    40: 9C C2 E2 45 56 26 6B 61 C5 C1 67 0C 6F A9 8A 16
    50: 76 8E 12 DB 38 A2 B3 09 6F B3 39 DD 9B EB 98 B7
    60: 61 9F 9E 18 65 4F DB AB 74 72 79 AC 14 7C 24 D8
    70: 47 16 5B 17 30 CB 6E FB 45 5E D1 04 37 FA 85 C3
    Экспонента 01 00 01

    Подпись Алгоритм подписи sha1WithRSAEncryption
    Подпись 00: 2C 1C D9 7F B4 F2 D0 10 16 7A B7 29 D6 89 A4 A1
    10: 2B 4A 78 1B 85 38 53 83 4E 71 3C 81 C0 A5 AD A8
    20: AB 16 59 F4 D3 A7 7E 83 2F AE 21 75 9E 91 F6 FC
    30: 93 A3 AE F5 27 CF 5F 0B C9 5F DC E1 75 26 D5 39
    40: 74 32 39 B9 BD 95 79 A7 EE 02 0C 56 0A A9 A5 83
    50: F8 86 0D 6F B5 7F C5 FE 23 0B 4B 5C 65 A8 BC 89
    60: 36 37 B3 53 74 BB 25 66 10 F8 53 AA EF 05 9E ED
    70: 74 04 E9 3D F4 DF 85 71 37 57 5D E7 D8 C6 8E EA

    Расширения X509v3 Authority Key Identifier keyid:6F:BC:94:76:03:5C:B5:00:61:52:4C:4A:BE:90:64:C9:C4:C3:2E:6B DirName:/CN=CA serial:01

  • Какую ЭЦП можно скопировать

    Квалифицированные ЭЦП выпускают нескольких видов: для юридического лица, индивидуального предпринимателя или физического лица. Отличаются они тем, что выдают их в разных удостоверяющих центрах (УЦ). И П и юридические лица могут получить сертификат и ключи КЭП в удостоверяющем центре ФНС или её доверенных лиц. Сотрудники организаций и физические лица — только в коммерческих УЦ. Также сертификат КЭП физлица не содержит в себе данных о принадлежности к какой-либо организации или ИП.

    Файлы, которые записывает налоговая, не подлежат экспорту. Это значит, что ключи полученные в ФНС нельзя скопировать с токена в память компьютера. Экспортировать их на другие носители запрещено. Установить на ПК можно только сертификат. Хранение осуществляется только на токенах, сертифицированных ФСТЭК или ФСБ России.

  • Для ускоренного выпуска рекомендуем воспользоваться услугой Получение КЭП в ФНС под ключ.

  • Специалисты УЦ «Калуга Астрал» помогут сэкономить время на получение электронной подписи и настройку рабочего места, а пройти идентификацию и получить подпись вы сможете через филиалы нашего партнёра — УЦ «Основание».
  • Ключи и сертификат, полученные в коммерческих аккредитованных центрах, могут храниться не только на токенах. Закон не запрещает копировать эти файлы на другие физические носители. Поэтому их можно установить на рабочий компьютер.

    УЦ «Калуга Астрал» входит в перечень аккредитованных удостоверяющих центров и имеет все необходимые лицензии для выпуска электронных подписей для физлиц и работников ЮЛ — «Астрал Подпись»
    и «1С-ЭТП»
    . Данные продукты придают цифровым документам юридическую значимость.

    Важно! Закон запрещает передавать ключи и КЭП третьим лицам. Злоумышленники могут воспользоваться подписью в своих целях: похитить важные документы, оформить кредит или перевести деньги на свой счёт. Необходимо обеспечить безопасность рабочего места. Следует установить пароль на ПК и контейнер ключей.

    Как скопировать ЭЦП на компьютер с помощью инструментов КриптоПро

    Данный способ является универсальным. Скопировать ЭЦП на компьютер таким образом можно и на Windows и на MacOS (при условии, что используется актуальная версия программы КриптоПро).

    1. Запустите приложение Инструменты КриптоПро
      .
    2. Перейдите в раздел «Контейнеры»
      .
    3. Выберите считыватель (флешку, на которую записана ЭЦП) и нажмите кнопку «Скопировать контейнер»
      .
    tools crypto pro copy container
    1. В открывшемся окне выберите «Реестр» и нажмите «ОК»
      .
    crypto pro csp container registry
    1. Выберите только что созданный контейнер закрытого ключа, ориентируясь на считыватель «Registry»
      , и нажмите «Установить сертификат»
      .
    tools crypto pro certificate

    После этого программа сообщит, что сертификат был успешно установлен.

    Теперь можете извлечь носитель с ЭЦП из порта USB и проверить, как работает ЭЦП без флешки.

    Удалось ли скопировать ЭЦП с флешки на компьютер?

    Расскажите в комментариях 😉

    Копируем сертификат ЭЦП через «Инструменты КриптоПро»

    Этот способ можно использовать на операционных системах Windows и MacOS.

    Шаг 1. Откройте приложение «Инструменты КриптоПро» и выберите вкладку «Контейнеры».

    Шаг 2. Выберите носитель, на который записан сертификат ЭЦП — то есть, USB-флешку. Нажмите на кнопку «Скопировать контейнер».

    USB-флешку13

    Шаг 3. В открывшемся окне выбора нового носителя для сертификата выберите опцию «Реестр» и нажмите «ОК».

    «Реестр»14

    Шаг 4. Вернитесь к списку контейнеров. Выберите тот, что скопировали, по считывателю Registry и нажмите на кнопку «Установить сертификат».

    «Установить сертификат»15

    Шаг 5. Когда появится уведомление о том, что сертификат успешно установлен, вытащите флешку из разъёма компьютера и проверьте, как работает ваша ЭЦП без токена

    ЭЦП можно установить на рабочий компьютер или ноутбук, и она будет работать без физического носителя. Вы можете сделать это самостоятельно или обратиться за помощью к специалистам.

    Настройка электронной подписи на ПК требует определённых знаний и трудозатрат. Для экономии времени рекомендуем услугу «Удалённая настройка рабочего»
    . Наши специалисты установят криптопровайдер, плагин и проведут настройки браузера.

    ЭЦП:  КАК ПОЛУЧИТЬ КЛЮЧ ЕГАИС
    Оцените статью
    ЭЦП64