Установка эцп на сервер
Электронные цифровые подписи (ЭЦП) всё чаще используются предпринимателями и физлицами. Это экономит время и денежные средства. ЭЦП невозможно подделать, а внесение изменений в данные после подписания документа исключено. Причём для взаимодействия с контролирующими органами необходима именно квалифицированная подпись (КЭП). Получить её можно в аккредитованных удостоверяющих центрах. А вот о том, как установить сертификат ЭЦП на компьютер после её получения, мы пошагово расскажем в этой статье.
Электронная подпись может быть сформирована разными криптопровайдерами. В статье мы расскажем о том, как происходит установка сертификата электронной цифровой подписи, сформированной криптопровайдером КриптоПро.
Для того чтобы установить сертификат на свой компьютер, необходимо скачать КриптоПро CSP. Дистрибутив программы доступен для загрузки на сайте (потребуется регистрация/авторизация).
Стоимость использования КриптоПро CSP
Каждый новый пользователь получает бесплатный тестовый период пользования программой – 90 дней. Когда этот период истечёт, нужно будет приобретать лицензию. Но иногда она уже включена в сертификат ЭЦП.
Технические требования для КриптоПро CSP
Перед установкой КриптоПро убедитесь, что ваш компьютер отвечает минимальным техническим требованиям:
- Процессор - Intel Core 2 Duo или другой схожий по производительности x86-совместимый процессор с количеством ядер 2 и более.
- Объем оперативной памяти - не менее 1 Гб.
- Свободное место на жестком диске - не менее 100 Мб.
Операционная система Windows - Windows Server 2003 (32-разрядная), Windows Vista (32/64-разрядная), Windows 7 (32/64-разрядная), Windows Server 2008 (32/64-разрядная), Windows Server 2008 R2 (64-разрядная), Windows 8 (32/64-разрядная), Windows Server 2012 (64-разрядная), Windows 8.1 (32/64-разрядная), Windows Server 2012 R2 (64-разрядная), Windows 10 (32/64-разрядная), Windows Server 2016 (64-разрядная).
При использовании более ранних версий Windows, чем Windows 8, на компьютере должен быть установлен накопительный пакет обновления часовых поясов KB2570791.
Для операционной системы должен быть установлен последний пакет обновлений.
Пошаговая инструкция установки ЭЦП в КриптоПро
- Откройте программу КриптоПро CSP.
- Во вкладке Сервис нажмите кнопку Просмотреть сертификат в контейнере.
А если закрытый ключ содержится в виде файлов?
Закрытый ключ может быть в виде шести файлов: header.key, masks.key, masks2.key, name.key, primary.key, primary2.key
И если эти файлы находятся в корневой папке (то есть, записаны непосредственно на жёсткий диск), то КриптоПро CSP их не «увидит». Соответственно, все действия нужно производить только после того, как каждый файл перенесён на флешку. Причём находиться он должен в папке первого уровня.
После выбора контейнера откроется окно Сертификаты в контейнере закрытого ключа. С помощью кнопки Установить начните установку сертификата.
Если автоматическая установка сертификата не удалась, может потребоваться ручная установка. О том, как её осуществить, читайте нашей пошаговой инструкции.
Как настроить рабочее место
После установки сертификата квалифицированной ЭЦП на персональном компьютере, потребуется настройка рабочего места. Необходимо проверить установку и работоспособность:
- криптопровайдера;
- физического носителя;
- браузера;
- Астрал плагина;
- плагина Astral Toolbox;
- ЭЦП на любом портале для программного продукта Астрал-ЭТ.
Проверка криптопровайдера
Чтобы проверить установку КриптоПро CSP на компьютере, необходимо зайти в «Панель управления» → «Установка и удаление программ», в других случаях «Программы и компоненты» → при одном нажатии правой кнопкой мыши на иконку программы, можно увидеть версию продукта.
Проверка ЭЦП
Необходимо убедиться, что срок действия подписи не истёк. Рассмотрим один из способов: Открываем криптопровайдер КриптоПро CSP → вкладка «Сервис» → «Просмотреть сертификаты в контейнере» → раздел «Обзор» → выбираем ЭЦП, которую хотим проверить и нажимаем «Ок» → после нажатия «Далее» появится окно с информацией о сертификате подписи. Если подпись используется с отчуждённого физического носителя, необходимо проверить устройство на внешние повреждения.
Настройка браузера
Для настройки работы браузера с ЭЦП, использующей КриптоПро, необходимо произвести установку плагина. Для каждого браузера потребуется определённое расширение. Разобраться поможет наша подробная инструкция.
Проверка плагинов
При возникновении проблем с Астрал Плагин требуется произвести его переустановку или произвести настройку межсетевого экрана или интернет-браузеров. Если используются «Астрал Онлайн» или «Астрал.ОФД», плагины Astral Toolbox уже могут быть установлены. Версии данных плагинов не совместимы с продуктом «Астрал Отчёт 5.0». Обязательно требуется установка плагина не ниже версии 2.19.2.
Удалённая настройка рабочего места
Если вы не смогли настроить необходимые программы рабочего стола самостоятельно, у нас существует возможность заказать данную услугу. Наши специалисты произведут качественную настройку рабочего места для работы с ЭЦП удалённо: сэкономят время, установят соответствующее расширение для браузера, произведут настройку плагинов, соблюдая нюансы по их установке.
На этом всё! Всем, кто решил обезопасить себя и свой бизнес, используя электронную подпись взамен обычной, желаем успехов в установке!
В случае, если Вы используете программу 1С в серверном режиме, у Вас есть возможность настроить и серверное подписание электронных документов, т.е. когда и криптопровайдер, и электронные подписи установлены только на сервере (на "клиентах" их нет).
Принципиальное значение в реализации данного варианта имеет то, от имени какого пользователя осуществляется настройка криптографии на сервере.
Настройка должна быть выполнена от имени того пользователя, под которым запускается служба "Агент сервера 1С:Предприятия".
По умолчанию данный пользователь именуется "USR1CV8", см. Рис. 1.
Эта служба может быть запущена и от имени другого пользователя (например, "Administrator") - данное правило задается системным администратором на свое усмотрение.
Поэтому, перед началом настройки серверной криптографии, обязательно нужно уточнить вышеописанный момент.
Определившись с пользователем, можно начинать.
1. Проходим на сервере аутентификацию под пользователем, под которым запускается служба "Агент сервера 1С:Предприятия".
2. Устанавливаем криптопровайдер.
3. Месторасположение контейнеров с закрытыми ключами (реестр, жесткий диск, внешний носитель) может быть любым, с условием, что они доступны пользователю, под которым запускается служба "Агент сервера 1С:Предприятия".
4. Устанавливаем личные сертификаты, корневые сертификаты, списки отозванных сертификатов. При этом установку можно проводить "для текущего пользователя" - нет необходимости устанавливать их "для локального компьютера".
5. Помечаем в программе 1С галочками пункты "Проверять подписи и сертификаты на сервере" и "Подписывать на сервере" (Администрирование - Обмен электронными документами - Электронная подпись и шифрование - Настройки электронной подписи и шифрования - закладка "Программы").
Система настроена. Подписание на "клиентах" должно проходить успешно.
При тестировании сертификата на "клиенте" нужно обращать внимание только на корректность прохождения этапов теста на сервере, см. Рис. 2.
1. Запустить СКЗИ «КриптоПро CSP». На закладке «Сервис» нажать кнопку «Просмотреть сертификаты в контейнере»:
2. Вставить носитель ЭП и нажать кнопку «Обзор»:
3. В появившемся списке выбрать нужный сертификат и нажать кнопку «ОК»:
Для ЭП, выданных в удостоверяющем центре «Альта-Софт» после 26.07.2018, будет показано два контейнера. Один из них сформирован по новому ГОСТ Р 34.10-2012, действующему с 01.01.2019. Требуется установить оба, повторив шаги 3 – 9 для каждого контейнера.
Примечание: На текущий момент с новым ГОСТ Р 34.10-2012 работает только СКЗИ «КриптоПро CSP» версии 4.0. СКЗИ «КриптоПро CSP» 3.9 и более старые версии, при установке контейнера по новому ГОСТ выдадут ошибку.
4. В окне шага 2 нажать кнопку «Далее» и в следующем окне – кнопку «Свойства»:
5. В появившемся окне нажать кнопку «Установить сертификат»:
6. Нажать кнопку «Далее»:
7. Нажать кнопку «Далее»:
8. Нажать кнопку «Готово»:
9. Нажать кнопку «ОК»:
Примечание. При установке программы «Альта-ГТД» на терминал-сервер необходимо выполнить вышеописанную процедуру установки на самом сервере.
Чтобы терминал-сервер «увидел» носитель ЭП, подключенный к клиенту, необходимо в свойствах RDP-клиента (должна быть версии не ниже 6.1 – Windows XP SP3 и более поздние) поставить флажок «Смарт-карты» в разделе «Локальные устройства и ресурсы»:
Несколько лет назад нашей компанией был выпущен продукт Рутокен Плагин, который предназначен для встраивания электронной подписи в системы с web-интерфейсом. Основываясь на полученном опыте интеграции продукта в реальные проекты мне хочется отметить, что нередко разработчики для реализации серверной части предпочитают использовать поддерживающий российские криптоалгоритмы openssl.
В данной статье будет расписана типичная схема подобной интеграции, основанная на следующих сценариях использования плагина:
Данные сценарии предполагают клиент-серверное взаимодействие, написание клиентских скриптов на JavaScript и соответствующих им серверных вызовов openssl.
Подробности под катом.
Общие операции
Операции с устройством
Поиск подключенных устройств
Любой клиентский сценарий начинается с поиска подключенных к компьютеру USB-устройств Рутокен. В контексте данной статьи акцент делается на устройство Рутокен ЭЦП.
При этом возвращается список идентификаторов подключенных устройств. Идентификатор представляет собой число, связанное с номером слота, к которому подключено устройство. При повторном перечислении это число может отличаться для одного и того же устройства.
Рутокен Плагин определяет все подключенные к компьютеру USВ-устройства Рутокен ЭЦП, Рутокен PINPad, Рутокен WEB. Поэтому следующим шагом следует определить тип устройства.
Получение информации об устройстве
Для определения типа устройства следует использовать функцию getDeviceInfo с параметром TOKEN_INFO_DEVICE_TYPE. Значение этой константы содержится в объекте плагина.
- модель устройства
- метку устройства
- серийный номер устройства
- информацию о том, залогинен ли пользователь на устройство
Смена PIN-кода
Пример смены PIN-кода на устройстве:
Здесь первым параметром выступает старый PIN-код, а вторым новый PIN-код.
Работа с сертификатами
1. На токене могут храниться 3 категории сертификатов:
2. Для чтения сертификатов, хранящихся на устройстве, не требуется авторизация на устройство.
Пример чтения пользовательских сертификатов с устройства:
3. Сертификат можно экспортировать в PEM-формате:
Получится примерно такая строка:
4. Сертификат можно распарсить вызовом функции parseCertificate и получить из него DN Subject, DN Issuer, расширения, значение открытого ключа, подпись, серийный номер, срок действия и т.п.
5. Сертификат можно записать на устройство.
Пример записи сертификата на устройство как пользовательского:
6. Вызовом функции deleteCertificate можно удалить сертификат с токена.
Работа с ключевыми парами ГОСТ Р 34.10-2001
1. Для получения декрипторов ключевых пар, хранящихся на устройстве, требуется ввод PIN-кода. Следует понимать, что само значение закрытого ключ получено быть не может, так как ключ является неизвлекаемым.
- A: id-GostR3410-2001-CryptoPro-A-ParamSet
- B: id-GostR3410-2001-CryptoPro-B-ParamSet
- C: id-GostR3410-2001-CryptoPro-C-ParamSet
- XA: id-GostR3410-2001-CryptoPro-XchA-ParamSet
- XB: id-GostR3410-2001-CryptoPro-XchB-ParamSet
Пример генерации ключевой пары ГОСТ Р 34.10-2001:
3. С помощью функции deleteKeyPair ключевая пара может быть удалена с токена.
Конфигурирование openssl
Openssl поддерживает российские криптоалгоритмы, начиная с версии 1.0. Для того, чтобы их использовать, в openssl требуется подгружать engine gost. В большинстве дистрибутивов openssl эта библиотека присутствует. Чтобы engine подгружалась, можно прописать ее в конфигурационном файле openssl:
Если конфигурационный файл openssl не расположен в стандартном месте, то путь к нему можно задать через переменную окружения OPENSSL_CONF.
Другим вариантом подгрузки engine gost является ее передача в параметрах командной строки утилиты openssl.
Если engine gost не расположена в стандартном месте, то через переменную окружения OPENSSL_ENGINES можно задать путь к директории, в которой openssl будет ее искать.
Для получения информации о том, успешен ли был вызов утилиты openssl или нет, с возможностью уточнения ошибки, требуется парсить stdout и stderror. В конце статьи приведена ссылка на PHP-скрипт, который использует данную утилиту.
Теперь перейдем к реализации законченных пользовательских сценариев.
Сертификат выдается при регистрации в системе
Последовательность вызовов в клиентском скрипте будет следующей:
Далее запрос отправляется на сервер, где на его основе выдается сертификат.
Для этого на сервере должен быть установлен и правильно сконфигурирован openssl версии от 1.0 и развернут функционал УЦ.
1. Генерация улюча УЦ:
После этого в файле ca.key будет создан закрытый ключ
2. Создание самоподписанного сертификата УЦ:
После ввода необходимой информации об издателе в файле ca.crt будет создан сертификат УЦ.
Полученный от клиента запрос сохраняем в файл user.csr и выдаем на его основе сертификат (без модификации данных из запроса):
Сертификат уже имеется на токене, выдан внешним УЦ
Ключевая пара при этом должна быть создана в формате, совместимом с библиотекой rtPKCS11ECP для Рутокен ЭЦП.
Последовательность вызовов на клиенте:
Подпись получается в base64-формате. При проверке ее на сервере с помощью openssl подпись следует обрамить заголовками, чтобы сделать из нее PEM. Выглядеть подобная подпись будет примерно так:
Проверка подписи на сервере:
Здесь sign.cms — файл, в котором находится подпись, ca.crt — файл с корневыми сертификатами, до одного из которых должна выстроиться цепочка, data.file — файл, в который будет сохранены подписанные данные, user.crt — файл, в который будет сохранен пользовательский сертификат. Именно из data.file нужно извлечь данные отсоединить последние 32 символа и сравнить salt.
Если на сервере нужно получить информацию из сертификата, то парсить его можно так:
Показать содержимое сертификата в текстовом представлении:
Показать серийный номер сертификата:
Показать DN субъекта (subject):
Показать DN издателя:
Показать почтовый адрес субъекта:
Показать время начала действия сертификата:
Показать время окончания действия сертификата:
Строгая аутентификация на портале
Электронная подпись данных и/или файлов в формате CMS
Проверка подписи на сервере описана выше.
Шифрование/расшифрование данных и/или файлов в формате CMS
Шифрование данных на клиенте для сервера
Последовательность вызовов приведена на картинке:
Шифрование данных на клиенте:
Расшифрование данных, полученных с сервера, на клиенте
Для расшифрования данных, полученных с сервера, предназначена функция cmsDecrypt. Так как сервер шифрует для клиента, используя его сертификат, то в качестве keyId должен быть передан дескриптор закрытого ключа клиента, соответствующий открытому ключу в сертификате. Этот дескриптор является уникальным и неизменным и потому может быть сохранен в учетной записи пользователя на сервере. Кроме того, дескриптор ключа пользователя может быть получен явным образом, путем вызова функции getKeyByCertificate.
Шифрование данных на сервере для клиента:
Расшифрование данных на клиенте:
Полезные ссылки
Данные ссылки могут быть полезны разработчикам инфосистем с поддержкой ЭЦП на базе Рутокен Плагин и openssl:
Читайте также: