Установка сертификата эцп командная строка
Диспетчер сертификатов (Certmgr.exe) предназначен для управления сертификатами, списками доверия сертификатов (CTL) и списками отзыва сертификатов (CRL).
Диспетчер сертификатов устанавливается автоматически вместе с Visual Studio. Для запуска этого средства используйте Командную строку разработчика или PowerShell для разработчиков в Visual Studio.
Диспетчер сертификатов (Certmgr.exe) является служебной программой командной строки, в то время как сертификаты (Certmgr.msc) — это оснастка консоли управления (MMC). Поскольку файл Certmgr.msc обычно находится в системном каталоге Windows, при вводе certmgr в командной строке может загрузиться оснастка консоли управления (MMC) "Сертификаты", даже если открыта командная строка разработчика для Visual Studio. Это происходит потому, что путь к оснастке предшествует пути к диспетчеру сертификатов в переменной среды PATH. При возникновении этой проблемы команды Certmgr.exe можно выполнить, указав путь к исполняемому файлу.
Общие сведения о сертификатах X.509 см. в разделе Работа с сертификатами.
В командной строке введите следующее.
Синтаксис
Параметры
Примечания
Основные функции программы Certmgr.exe.
Отображение сведений о сертификатах, CTL и CRL на консоли.
Добавляет сертификаты, CTL и CRL в хранилище сертификатов.
Удаляет сертификаты, CTL и CRL из хранилища сертификатов.
Сохраняет в файл сертификат X.509, CTL или CRL из хранилища сертификатов.
Программа Certmgr.exe работает с двумя типами хранилищ сертификатов: системным и StoreFile. Указывать тип хранилища необязательно, поскольку программа Cedrtmgr.exe может автоматически определить тип хранилища и выполнить соответствующие действия.
При запуске программы Certmgr.exe без параметров выполняется оснастка "certmgr.msc" с графическим интерфейсом пользователя, облегчающим управление сертификатами, что также можно сделать из командной строки. В графическом интерфейсе пользователя имеется мастер импорта, копирующий сертификаты, CTL и CRL с диска в хранилище сертификатов.
Чтобы найти имена хранилищ X509Certificate для параметров sourceStorename и destinationStorename , можно скомпилировать и выполнить следующий код.
Дополнительные сведения см. в разделе Работа с сертификатами.
Примеры
Следующая команда выводит подробные сведения о содержимом системного хранилища my , используемого по умолчанию.
Следующая команда добавляет все сертификаты из файла myFile.ext в новый файл newFile.ext .
Следующая команда добавляет сертификат в файле testcert.cer в хранилище системы my .
Следующая команда добавляет сертификат в файле TrustedCert.cer в хранилище корневых сертификатов.
Следующая команда сохраняет сертификат с общим именем myCert в системном хранилище my в файл newCert.cer .
Следующая команда удаляет все CTL из системного хранилища my и сохраняет полученное хранилище в файл newStore.str .
Следующая команда сохраняет сертификат в системном хранилище my в файл newFile . Программа запросит у пользователя номер сертификата из хранилища my , который следует поместить в файл newFile .
Утилита сsptest.exe , входит в состав программы КриптоПро и позволяет выполнять операции через командную строку. Это дает возможность автоматизировать выполняемые действия с помощью скриптов.
Далее будут рассмотрены основные команды утилиты сsptest.exe и скрипты, позволяющие выполнить массовое копирование контейнеров закрытых ключей и установку сертификатов.
Для удобства, перед выполнением команд перейдите в папку C:\Program Files\Crypto Pro\CSP , выполнив в командной строке команду: cd "C:\Program Files\Crypto Pro\CSP"
Справка по csptest.exe¶
Посмотреть все параметры утилиты сsptest.exe :
Основные команды csptest.exe¶
Просмотр списка контейнеров закрытых ключей¶
Список контейнеров выводится с помощью параметра -keyset :
Для просмотра списка контейнеров на съемных носителях используется параметр -machinekeys . В данном случае не будут показаны ключи, установленные в реестр:
Пример вывода команды:
Флешки и дискеты обозначаются как FAT12_x , где и x буква, присвоенная съемному носителю.
Носитель будет отображен данной командной только в том случае, если на нем есть контейнеры.
Копирование контейнера¶
Копирование контейнера осуществляется с помощью параметра -keycopy :
- -src — имя контейнера. Имена контейнеров уникальны, поэтому можно не указывать путь к носителю, КриптоПро сама найдет путь к контейнеру.
- -dest — имя скопированного контейнера, оно должно отличаться от исходного имени. Так же можно указать путь к контейнеру, например, если указать -dest "\\.\FAT12_H\2015ZAO_3" , то контейнер будет скопирован на флэшку. Если не указать путь к носителю, а просто задать название контейнеру, то крипто про выведет графический диалог выбора носителя для копирования.
- -pinsrc — пароль от исходного контейнера, если пинкода нет, то данный параметр можно не указывать.
- -pindest — пароль на скопированный контейнер. Чтобы подавить графический диалог установки пароля при автоматическом копировании контейнеров, можно указать пустой пароль, выполнив -pindest=""
Например, рассмотрим копирование контейнера с рутокена в реестр:
Аналогичная ситуация с рутокенами, в данном случае программа не различает понятия пароль и пин-код. Т.е. чтобы скопировать контейнер с рутокена на носитель можно команде -pinsrc присвоить стандарнтный пин-код от Рутокена 12345678 . В таком случае не будет выводиться запрос на ввод пин-кода Рутокена.
Копирование на Рутокен¶
К сожалению, копирование контейнера на Рутокен работает не совсем гладко. Если параметру -dest указать значение \\.\Aktiv Co. ruToken 0\Имя_контейнера , то будет выведено пустое окно КриптоПро для выбора ключевого носителя.
В данном случае лучше передать параметру -dest просто название контейнера, без указания пути к носителю, но тогда при копировании каждого контейнера будет появляться уже не пустое окно КриптоПро для выбора ключевого носителя, в котором надо будет вручную выбирать нужный Рутокен.
С другой стороны, такое поведения достаточно удобно при копировании большого числа контейнеров на разные Рутокены. Можно контролировать заполненность носителя.
Перенос сертификата электронной цифровой подписи (ЭЦП) в реестр необходим в случае, если имеется виртуальная инфраструктура и подключение USB-носителя невозможно или если сертификатов подписи много и нужно работать с 5-ю и более ключами одновременно. Также установка ЭЦП в реестр удобна при частых поездках и сменах офиса: снижается риск потери или порчи носителя. Скопировать сертификат с флешки можно несколькими способами, а весь процесс занимает всего несколько минут и не требует специальных навыков работы с ПК.
Как скопировать сертификат в реестр
Процесс копирования закрытых ключей с флешки на ПК состоит из нескольких этапов: настройки считывателей, самого копирования и установки.
Настройка считывателя
Для установки реестра в список считывателей ключевых носителей пользователь должен:
- через «Оборудование» нажать «Настроить считыватель»;
- в открывшемся новом окне нажать кнопку «Добавить»;
- затем в мастере установки выбрать, какой считыватель необходимо добавить (реестр, смарт-карту, диски и т.д.);
Для последующей корректной работы необходимо перезагрузить компьютер.
Копирование
Для копирования сертификата в реестр лучше воспользоваться программой КриптоПро. Пользователь запускает программу и нажимает «Запустить с правами администратора».
Затем переходим во вкладку «Сервис» и жмем «Скопировать».
Откроется окно «Контейнер закрытого ключа», в нем нажмите на кнопку «Обзор» и выберите сертификат, который необходимо скопировать.
В поле «Имя ключевого контейнера» имя отразится в нечитаемом формате. Это нормально.
Нужно нажать «ОК» и «Далее», после чего откроется окно для ввода пин-кода от USB-носителя.
Если пароль не менялся, то стандартный будет:
- для Рутокен для пользователя: 12345678;
- для Рутокен для администратора:87654321;
- для eToken: 1234567890.
После пин-кода нужно задать новое имя личного сертификата в реестре. В КриптоПро это сделать просто.
Теперь нужно переложить сертификаты в реестр.
Последний шаг — после копирования контейнера задаем новый пароль.
На этом процесс копирования закрытого ключа электронной подписи закончен.
Установка
После копирования установить сертификат ЭЦП на компьютер с флешки в реестр можно 2 способами:
- через установку личных сертификатов;
- через просмотр сертификатов в контейнере.
Оба способа используют программу КриптоПро CSP.
Через раздел личных сертификатов
Как установить ЭЦП в реестр при условии, что на ключевом носителе имеется папка *.000 и файл .cer:
- Запустить КриптоПро и выбрать «Установить личный сертификат» через вкладку «Сервис».
- В мастере установки сертификатов нажать «Далее» и через «Обзор» выбрать расположение файла сертификата.
- В новом окне нужно выбрать «Мой компьютер» и далее вид съемного носителя, который содержит закрытый ключ. Затем нажать «Открыть»;
- Далее в соответствующей строке прописывают расположения файла сертификата.
- Затем нужно проверить данные сертификата, который необходимо установить, и нажать «Далее».
- Следующий шаг — это в новом окне выбор ключевого контейнера через кнопку «Обзор».
- В списке выбираем реестр, после чего нажимаем «Ок».
- В строке с именем ключевого контейнера должен автоматически прописаться контейнер с закрытым ключом. Нажать «Далее».
- Через «Обзор» выбираем хранилище сертификата.
- Через папку «Личные» выбираем папку «Реестр», а затем нажимаем «Далее».
Последний шаг — завершить установку нажатием кнопки «Готово».
Через просмотр сертификатов
Данный способ подходит в том случае, если имеется только папка вида *.000.
Для установки нужно:
- Запустить КриптоПро.
- Через «Сервис» перейти на вкладку «Просмотреть сертификаты в контейнере».
- Затем выберите носитель через кнопку «Обзор» и в открывшемся окне выделите нужный реестр.
- В строке с именем контейнера должна быть информация о контейнере с закрытым ключом, если все верно, то нужно нажать «Ок».
- Затем в окне с информацией нужно нажать «Свойства».
- После проверки данных нажать кнопку «Установить».
- Затем через папку «Личные» выбрать папку с носителем реестром и в строке «Название хранилища» нажать «Далее».
В завершении установки нужно лишь «Готово» в мастере установки.
Где хранится ключ в реестре
Все установленные на ПК закрытые ключи ЭЦП хранятся в отдельной папке, которая называется реестром. Для просмотра закрытого ключа нужно иметь права доступа администратора. Чтобы открыть реестр, нужно нажать Win+R и в командной строке ввести certmgr.msc.
В новом окне откроются логические хранилища, где можно перейти к выбору сертификата. Расположены они по типам установки.
Чтобы посмотреть информацию об электронной подписи, нужно нажать «Открыть» на выбранном файле.
Ошибка при копировании сертификата
Устанавливать электронную подпись на компьютер просто, но иногда в процессе возникает ошибка копирования контейнера. Объясняется она отсутствием разрешения на экспорт ключа, т.к. при создании его не был указан соответствующий пункт. Чтобы скопировать сертификат с флешки и избежать ошибки нужно:
- Убедиться, что КриптоПро имеет действующую лицензию.
- Попробовать повторно установить закрытый ключ ЭЦП.
- Если в имени имеется строка, содержащая данные «_копия_a0b63dd8», то нужно провести копирование одним из способов, соответствующих типу носителя.
- При переносе ключа поставить галочку «Уникальные имена».
- Проверить, что КриптоПро запущена с правами администратора.
Если сертификат находится на USB-носителе или дискете, или на ПК, то копия делается так:
- При необходимости вводят пароль и повторяют процедуру копирования.
Если сертификат расположен на рутокене:
Скопировать сертификат с флэшки на ПК нужно в случае, если пользователь работает сразу с несколькими ключами ЭЦП или часто путешествует. Установка подписи на ПК поможет снизить риски потери или порчи носителя, а процесс занимает всего несколько минут. Для копирования используется стандартная лицензионная программа КриптоПро, а установить сертификат можно двумя способами. Первый использует путь через «Личные сертификаты», а второй — через «Просмотр ключей в контейнере». Иногда при копировании закрытых ключей возникает ошибка, т.к. ЭЦП имеет встроенную защиту от экспорта. В этом случае нужно установить специальную утилиту и повторить весь путь копирования.
Поговорим немного про средства электронной подписи (ЭП) с использованием отечественных ГОСТ-алгоритмов в Linux. Несмотря на то, что различные средства и интерфейсы по работе с ЭП в Linux развиты даже лучше, чем в Windows, использовать их не так просто.
Такое положение вещей сохранялось последние несколько лет. Но с конца 2016 года ситуация изменилась в лучшую сторону. Появилось сразу два продукта, которые позволяют работать с электронной подписью по стандарту ГОСТ и шифрованием без использования консоли – это Rosa Crypto Tool и Trusted eSign. Оба эти продукта для работы с криптографией используют «КриптоПро CSP» для Linux. Поэтому, перед тем как обратиться к описанию самих продуктов, поговорим немного про «КриптоПро CSP».
«КриптоПро CSP» под Linux — неоднозначный продукт. С одной стороны, это одно из самых распространенных и мощных сертифицированных средств по работе с криптографией как в Windows, так и в Linux. С другой стороны, для простого человека пользоватся его интерфейсами даже в Windows не так-то просто. А в Linux доступен только консольный интерфейс. Надеюсь, что компания «КриптоПро» в курсе этой ситуации, и в будущем нас ждут новые красивые и удобные интерфейсы, как для Windows, так и для Linux.
Для настройки нам понадобится:
- Любимый дистрибутив Linux. Я использовал Ubuntu Linux 16.04 LTS и ROSA Fresh GNOME R8;
- Сертифицированная версия КриптоПро CSP 4.0 R2 для Windows, UNIX и macOS;
- Рутокен ЭЦП 2.0.
Настройка «КриптоПро» CSP
Несмотря на то, что есть несколько неплохих статей по настройке «КриптоПро CSP» под Linux (например, тут или тут), я опишу здесь свой вариант. Основная причина в том, что большинство инструкций написаны для «Крипто Про CSP» версии 3.x. А современная версия «КриптоПро CSP» 4.0 не является 100% совместимой с 3.x. Дополнительная причина – всегда приятно иметь полную инструкцию по настройке в одном месте, а не переключаться с одного окна на другое.
Приступаем к настройке.
Распаковываем «КриптоПро CSP» для Linux:
Далее у нас есть 2 варианта – автоматическая установка и установка вручную. Автоматическая установка запускается командой:
Здесь надо отдать должное разработчикам «КриптоПро» – автоматическая установка для большинства дистрибутивов отрабатывает успешно. Хотя бывают и нюансы. Например, если у вас не хватает некоторых пакетов, то установка будет успешно завершена, хотя некоторый функционал работать не будет.
Если что-то пошло не так, или вы по тем или иным причинам хотите использовать установку в ручном режиме, то вам необходимо выполнить:
Для установки пакетов в ROSA используйте urpmi, вместо dpkg -i.
Устанавливаем лицензию для «КриптоПро CSP» для Linux и проверяем, что все работает нормально:
Мы должны получить что-то вроде:
Настройка работы с Рутокен ЭЦП 2.0
Сделаем небольшое отступление. Для работы с электронной подписью и шифрованием нам не обойтись без ключевых пар и сертификатов. Надежное хранение закрытых ключей – один из основных факторов безопасности. А более надежных средств хранения, чем токен или смарт-карта, человечество пока не придумало. Я буду использовать Рутокен ЭЦП 2.0, который имеет сертификат ФСБ и поддерживает работу как с новыми, так и со старыми ГОСТами.
Для работы с токенами в ОС Linux есть масса различных средств и драйверов. Для описания всех этих средств понадобится отдельная статья. Поэтому я не буду подробно описывать, как это работает, и почему нам нужны именно эти пакеты.
Устанавливаем пакеты для работы с Рутокен ЭЦП 2.0:
Нам также необходимо установить пакеты КриптоПро CSP для поддержки работы с токенами:
Получаем тестовый сертификат
Перед тем как перейти непосредственно к работе с подписью, надо сгенерировать ключевую пару и создать сертификат электронной подписи. Если у вас уже есть Рутокен с контейнером «КриптоПро», то эту часть можно смело пропустить.
Проверим, что сертификат получен успешно.
Чтобы убедиться, что «КриптоПро CSP» успешно увидел токен, выполним:
Мы должны получить что-то вроде:
Теперь проверяем, что сертификат на токене видится успешно:
Записываем в хранилище сертификатов КриптоПро информацию об этом сертификате:
Проверим, что сертификат успешно сохранился в хранилище:
На этом основная настройка завершена, и мы можем начинать подписывать или шифровать файлы с использованием различных средств. Переходим к тому, зачем задумывалась эта статья.
Подпись средствами «КриптоПро CSP»
В составе «КриптоПро CSP» есть утилита csptestf, позволяющая выполнять различные криптографические операции. Как я уже писал выше, у этой утилиты есть 2 недостатка:
- Отсутствие хорошей документации;
- Отсутствие графического интерфейса.
Здесь,
my — параметр, в котором надо указать часть Common Name сертификата для подписи;
detached — позволяет создать открепленную подпись;
alg GOST94_256 — задает алгоритм хэширования, который будет использоваться при создании подписи.
Более подробную информацию о возможных параметрах вы можете получить, выполнив команду:
Такой интерфейс отлично подходит для подготовленного пользователя или для автоматизации операций в скриптах.
Поговорим теперь об утилитах, которые облегчают жизнь обычным пользователям при работе с подписью и шифрованием в Linux.
Rosa Crypto Tool
Как следует из названия, это утилита для работы с электронной подписью и шифрованием для дистрибутива ROSA Linux. В данный момент утилита доступна в репозиториях Rosa Linux и Alt Linux.
Эта утилита разрабатывается одним человеком – Михаилом Вознесенским. У нее простой, но удобный интерфейс. На данный момент утилита находится в активной разработке – с ноября 2016 года мне удалось протестировать три версии. Последняя версия, доступная на момент написание статьи — 0.2.2. Сейчас утилита поддерживает работу только с «КриптоПро CSP» для Linux, однако в ближайшее время будет добавлена поддержка других криптопровайдеров.
Что внутри? Утилита написана на Python с использованием PyQt4 для графического интерфейса.
Установить ее можно, использовав «Управление программами» в Rosa Linux.
Вставляем токен и запускаем утилиту.
Видим, что токен определился успешно и был найден наш сертификат.
Интерфейс программы настолько прост, что описывать и показывать в статье все его функции не имеет смысла. Попробуем только подписать файл.
Выбираем файл и жмем “Подписать файл”. Получаем вот такое предупреждение.
Нажимаем «OK» и получаем информацию о том, что файл был подписан успешно.
Основное достоинство этой утилиты в том, что она совершенно бесплатная, в отличии нашего следующего продукта.
По сравнению с использованием «КриптоПро CSP» из консоли:
+ На порядок проще использовать;
— Отсутствуют различные параметры подписи.
Исходный код программы доступен в публичном репозитории на ABF:
abf.io/uxteam/rosa-crypto-tool-devel
Система контроля версий, которую использует «НТЦ ИТ РОСА», интегрирована в сборочную среду и базируется на Git. Можно вполне использовать любой клиент git.
Надеюсь, разработчики других отечественных дистрибутивов Linux, таких как Astra Linux, GosLinux и другие добавят в свои дистрибутивы пакеты с rosa-crypto-tool.
Trusted eSign
Второй продукт, про который мы поговорим, это Trusted eSign от компании “Цифровые технологии”. Она известна на российском рынке ИБ как разработчик средства по работе с подписью и шифрованием для ОС Windows – «КриптоАРМ».
Главное, не путать этот продукт с Trusted.eSign – web-сервисом по работе с подписью этой же компании.
К сожалению, продукт пока доступен только в виде deb пакета для 64-битных систем. С чем связано такое ограничение, непонятно. Будем надеяться, что в ближайшее время компания выпустит и rpm пакет, а также версии для 32-битных дистрибутивов Linux.
Скачиваем с официального сайта deb-пакет и устанавливаем командой:
Запускаем Trusted eSign.
Сразу видно, что разработка не обошлась без дизайнера. Никакого сарказма. Все действия делаются просто и логично, а внешний вид радует глаз. К сожалению, большинство средств и программ в области ИБ от российских разработчиков разработаны без привлечения UX-специалистов и дизайнеров и заставляют своих пользователей страдать и плакать кровавыми слезами. Создается впечатление, что другими средства информационной безопасности просто не могут быть. “Цифровые технологии” опровергают это. Плата за красоту и удобство – необходимость платить за лицензию.
Но вернемся к подписи.
Выбираем раздел “Электронная подпись”:
Выбираем «Сертификат для подписи»:
Выбираем файлы для подписи и жмем «Подписать»:
Что под капотом? Процитирую с сайта: “Приложение создано на современном движке Electron, для вызова криптографических операций применяется библиотека OpenSSL. Совместимо с СКЗИ “КриптоПро CSP 4.0” и поддерживает все криптографические алгоритмы, реализованные в нем.” Для тех, кто ещё не в курсе Electron — это фреймворк для создания десктопных приложений на платформе node.js.
Сравним Trusted eSign с Rosa crypto tool:
+ Более удобный и красивый интерфейс
— Платная лицензия
Резюме
Подведем итог. В конце 2016 – начале 2017 года наметился неплохой прогресс в средствах по работе с электронной подписью под Linux. Информационная безопасность начинает поворачиваться к пользователю лицом, и с каждым годом требуется все меньше действий для такого простого действия, как подписать или зашифровать файл с использованием отечественных алгоритмов.
Хочется дополнительно отметить такое развитие отечественных продуктов, учитывая современный тренд на замену Windows на Linux в государственных и муниципальных организациях. В рамках этого тренда становится актуальным использование средств криптографической защиты информации под Linux. Хорошие и удобные продукты российских разработчиков помогут государственным организациям и структурам нормально работать и выполнять требования по импортозамещению.
Такое развитие не может не радовать, особенно когда это происходит под Linux.
Читайте также: