# Сертификат КриптоПро для Сбербанка

В Мультибанке (Транзит 2.0) реализован функционал, который позволяет получать сертификаты КриптоПро для пользователей Сбербанка.

## Общее описание

Процесс выпуска (и перевыпуска) сертификата электронной подписи предназначен для получения квалифицированного сертификата ключа проверки электронной подписи через интеграцию со Сбербанком. Процесс выполняется пользователем системы Мультибанк через пользовательский интерфейс и включает взаимодействие с криптографическим провайдером (КриптоПро/Bicrypt) и банковским API.

Процесс различается в зависимости от типа операции:

- Первичный выпуск — у пользователя нет действующего активированного сертификата. Подтверждение запроса возможно только физически: пользователь скачивает печатную форму (PDF), распечатывает, подписывает и лично предоставляет в отделение банка.

- Перевыпуск — у пользователя есть ранее выпущенный и активированный сертификат. Подтверждение запроса возможно двумя способами: электронная подпись предыдущим сертификатом (удалённо) или физическое предоставление PDF в отделение банка, как при первичном выпуске.

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

## Предусловия

Для работы с функционалом запроса сертификатов необходимо выполнить ряд предварительных условий:

1. Организация зарегистрирована. У организации заполнен идентификатор Сбербанка;
2. Нет незавершённых запросов. Последний запрос сертификата для данной организации уже обработан банком (статус «Принят к исполнению» или «Отклонён»);
3. Права доступа. У пользователя есть права `Управление сертификатами и транспортными ключами Сбербанка` (просмотр и редактирование);
4. Криптографическое ПО. На рабочем месте пользователя установлено ПО КриптоПро с утилитой cryptcp.

## Требования по установленному ПО

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

1. Должен быть установлен OpenSSL. Установка должна быть выполнена на устройство, на котором генерируется запрос на выпуск сертификата КриптоПро Сбербанка.

   Данное требование основано на документации Сбербанка (подробнее см. по ссылке https://developers.sber.ru/docs/ru/sber-api/overview).

   Примечание: версия OpenSSL выбирается самостоятельно в соответствии с регламентом и политикой безопасности.

2. Должен быть установлен КриптоПро с утилитой cryptcp (дистрибутив, порядок установки и лицензирование находится по ссылке: https://www.cryptopro.ru/products/other/cryptcp ).

   Переименуйте скачанный файл в cryptcp (его название может отличаться при скачивании) и переместите в созданную для него папку, например, C:\Program Files\CryptCP.

   Далее достаточно один раз с использованием утилиты установить серийный номер лицензии.

   Проверить текущее состояние, а именно был установлен серийный номер лицензии ранее или нет можно, открыв каталог с утилитой cryptcp в командной строке и выполнив команду `cryptcp -sn`:

   Запуск утилиты cryptcp - проверка текущего состояния

   Если серийный номер не был добавлен, то необходимо выполнить команду `cryptcp -sn <серийный номер лицензии>`:

   Запуск утилиты cryptcp - указание серийного номера лицензии

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

3. В переменные среды в переменную Path должны быть прописаны пути до OpenSSL и cryptcp. Пути должны быть прописаны на устройство, на котором производится выпуск сертификата.

   Подробнее про добавление переменных читайте в инструкции по добавлению переменных.

   На рисунке ниже в системную переменную Path пути до OpenSSL и cryptcp уже добавлены.

   Добавление путей до OpenSSL и cryptp в переменную Path

## Процесс получения сертификата КриптоПро

Обратите внимание: сертификаты КриптоПро и Инфокрипт не работают вместе в одной учетной записи клиента Сбербанка. Выпуск КриптоПро автоматически деактивирует Инфокрипт и наоборот.

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

### Первичный выпуск сертификата

Для того чтобы получить сертификат КриптоПро для пользователя Сбербанка, необходимо выполнить следующие шаги:

1. Авторизоваться в Мультибанке (Транзит 2.0) под пользователем с ролью в котором отмечен чекбокс редактирования “Управление сертификатами и транспортными ключами Сбербанка”;

2. Перейти в панель настроек администратора в раздел Запросы сертификатов Сбербанка, и нажать на кнопку `Создать запрос на сертификат`:

   Создать запрос на сертификат

   Откроется форма Создать запрос на сертификат.

3. На форме выбрать организацию и нажать на кнопку `Далее`:

   Выбор организации

   Примечание: в выпадающем списке отображаются только те организации, для которых в настройках организации заполнено поле `Идентификатор Сбербанка (КПП)`. Если данное поле не заполнено ни для одной из организаций, то список будет пустым.

4. Необходимо заполнить форму для создания сертификата. Предусмотрены следующие поля (значком `*` помечены обязательные для заполнения поля):

   - `Идентификатор запроса*` - заполняется автоматически на основании выбранной организации, недоступно для редактирования;
   - `Код сертификата*` (КУЦ) - код удостоверяющего центра, заполняется автоматически на основании выбранной организации, недоступно для редактирования;
   - `Номер сертификата*` - порядковый номер сертификата, заполняется автоматически на основании выбранной организации, недоступно для редактирования;
   - `Логин пользователя*` - логин пользователя системы СББОЛ. Должен строго соответствовать логину в СББОЛ;
   - `Фамилия*`, `Имя*`, `Отчество*` - фамилия имя и отчество согласованного со Сбербанком лица, уполномоченного проставлять подпись. Суммарная длина ФИО ≤ 128 символов;
   - `Код страны*` - код организации, от которой создается запрос на выпуск сертификата. Заполняется автоматически значением RU (Российская Федерация), можно изменить вручную, макс. 2 символа;
   - `Наименование организации*` - краткое наименование организации, строго соответствует наименованию в СББОЛ, макс. 64 символа;
   - `ОГРН*` - основной государственный регистрационный номер, ровно 13 цифр;
   - `ИНН организации*` - ИНН юридического лица, 10 или 12 цифр;
   - `Подразделение*` - подразделение организации, от которой создается запрос на выпуск сертификата, макс. 64 символа;
   - `Должность*` - должность согласованного со Сбербанком лица, уполномоченного проставлять подпись, макс. 64 символа;
   - `E-mail*` - электронная почта согласованного со Сбербанком лица, уполномоченного проставлять подпись;
   - `СНИЛС*` - страховой номер индивидуального лицевого счёта, формат XX-XXX-XXX XX;
   - `ИНН физ.лица*` - ИНН физического лица, 12 цифр.

   Заполнение формы для создания сертификата

5. На шаге Импортируйте сертификат необходимо заполнить поля `Наименование контейнера закрытого ключа` и `Пароль контейнера закрытого ключа`:

   Заполнение данных о контейнере закрытого ключа

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

   Скачивание архива со скриптом для создания сертификата

   Далее необходимо распаковать скаченный архив.

   В архиве находятся два скрипта PowerShell:

   - `script_OID.ps1` — скрипт с использованием OID;
   - `script.ps1` — скрипт по старому формату.

   По умолчанию рекомендуется использовать скрипт `script.ps1`. Если при генерации возникает ошибка кодом 0x80092023:

       Ошибка: В строке содержится недопустимый ключ атрибута имени X500, OID, значение или разделитель.

   то необходимо использовать скрипт `script_OID.ps1`.

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

   Скрипт протестирован и гарантированно работает на Windows 10.

   Запуск скрипта для создания сертификата

   Во время выполнения скрипта появится окошко “КриптоПро CSP”, где необходимо выбрать устройсво для хранения контейнера закрытого ключа и нажать ОК:

   Выполнение скрипта - выбор устройства в окне КриптоПро CSP

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

   Выполнение скрипта - генерация случайной последовательности

   После выполнения скрипта в папке, где располагается сам скрипт, дополнительно сгенерируются файлы, в том числе, необходимый сертификат request_cms.der (далее его нужно будет выбрать на шаге 8):

   Сгенерированные файлы после выполнения скрипта

8. Необходимо вернуться в Мультибанк (Транзит 2.0), нажать на кнопку `Загрузить сертификат`, и выбрать сертификат, сгенерированный на шаге 7 (request_cms.der ).

   Загрузка сертификата

   Далее необходимо нажать на кнопку `Создать`.

9. После создания запроса в табличной части появляется запрос, отправленный в банк:

   Запрос, отправленный в банк

   По мере обработки банком запроса меняется статус запроса. Подробнее про статус запроса.

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

   Текущий шаг запроса

10. После смены статуса заявления на Принято к исполнению на вкладке Шаги появляется кнопка `Скачать PDF`

    Скачивание заявления в формате PDF

    По кнопке необходимо скачать заявление и направить его в банк, в отделение для работы с юридическими лицами. В зависимости от контура (ПРОМ или ТЕСТ) могут быть разные требования по отправке заявления. Подробности см. по ссылке https://developers.sber.ru/docs/ru/sber-api/start/eds-in-api#issue-eds-certificate-in-api.

11. После регистрации сертификата в банке статус запроса изменяется на Исполнено. На форме создания запроса осуществляется переход на шаг Активация, где необходимо нажать на кнопку `Активировать сертификат`:

    Активация сертификата

12. После активации осуществляется переход на следующий шаг Скачивание сертификата. Необходимо нажать на кнопку `Скачать сертификат`:

    Сохранение сертификата

    Далее распаковать скаченный архив.

    Распакованный архив с сертификатами

13. Установите все сертификаты из скачанного архива на рабочее место, где генерируются ключи и выпускаются сертификаты (некоторые сертификаты могут не устанавливаться, это нормально). Сертификаты со словом cert в названии при этом добавьте в доверенные сертификаты КриптоПро. И только один сертификат (с наименованием, соответствующим значению в столбце Bicrypt ID для искомого запроса на вкладке Запросы сертификатов) необходимо добавить в личные (подробнее см. раздел Добавление сертификата в личные сертификаты).

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

    Скачивание корневых сертификатов

    Далее необходимо распаковать скаченный архив. Из данного каталога устанавливаются сертификаты с расширением cer в доверительные сертификаты КриптоПро (установите на рабочее место или сервер Мультибанка, на котором будет происходить использование ключей).

    Корневые сертификаты в скаченном архиве

15. После установки сертификатов (доверительных и личного) необходимо обновить список в настройках модуля Сбербанка на вкладке Расширенные настройки, нажав на кнопку `Обновить` под таблицей кодов авторизации:

    Таблица кодов авторизации

    Потребуется какое-то время для обновления таблицы (до 5 минут). Через указанное время обновите страницу банковских модулей, выберите строку в таблице кодов авторизации — под таблицей появится Список сертификатов:

    Обновленная таблица со списком сертификатов

16. Далее для пользователя Мультибанка, который будет выполнять подписание документа полученным от Сбербанка сертификатом КриптоПро, необходимо в сертификаты пользователя добавить искомый сертификат. Подробнее по добавлению сертификатов пользователю см. раздел Настройка Клиентского подписания КриптоПРО.

17. На последнем шаге необходимо выполнить настройку полномочий пользователю Мультибанка, который будет подписывать документы, направляемые в Сбербанк, и указать искомый сертификат КриптоПро (полученный от Сбербанка) для необходимой фазы подписания. Подробнее по настройке полномочий пользователю см. раздел Полномочия пользователя.

### Перевыпуск сертификата

При перевыпуске сертификата (когда у пользователя уже есть активированный сертификат) процесс отличается от первичного выпуска.

#### Условия для перевыпуска

1. Есть активированный сертификат;
2. Статус от банка - Ожидает электронного подтверждения или Принят АБС банка;
3. Подтверждение - Электронное (подпись предыдущим сертификатом) или физическое (PDF в отделение);
4. Новый сертификат заменяет предыдущий (может быть только один активный сертификат).

#### Электронное подтверждение при перевыпуске

При перевыпуске банк может вернуть статус Ожидает электронного подтверждения, что позволяет подтвердить запрос удалённо:

1. Если у пользователя был ранее активированный сертификат и банк вернул соответствующий статус, то при запросе сертификата будет доступна кнопка `Подписать запрос`;

   Перевыпуск сертификата

2. При нажатии на кнопку `Подписать запрос` откроется модальное окно, где нужно выбрать предыдущий активированный сертификат из криптохранилища. Выбранный сертификат после перевыпуска станет недействительным и будет заменен на новый;

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

3. После выбора сертификата пользователь подписывает запрос;
4. Подпись отправляется в банк, статус меняется на Подтверждён пользователем;
5. После подтверждения статус меняется на Сертификат выпущен банком.

Примечание: если предыдущий сертификат недоступен (утерян токен, сертификат повреждён и т.п.), пользователь может воспользоваться физическим подтверждением — скачать PDF и предоставить в отделение банка.

#### Статусы запроса

После создания запроса его статус обновляется каждый час в течение 14 дней. Количество дней можно поменять в Настройке запросов, создав свой период запроса статусов.
Даже по истечение 14 дней вы можете запросить статус вручную, для этого в окне запроса нажмите `Запросить статус`.

Обратите внимание: для корректного отображения статуса время в базе данных API Оркестратора должно совпадать со временем на сервере, где установлен адаптер Сбербанка.

### Добавление полученного сертификата в личные сертификаты

Необходимо из распакованного архива с сертификатами (см. шаг 12 раздела Процесс получения сертификата КриптоПро) взять сертификат с наименованием, которое соответствует значению в столбце Bicrypt ID для искомого запроса на вкладке Запросы сертификатов модуля Сбербанк, и добавить его в личные сертификаты.

Чтобы добавить сертификат в личные сертификаты необходимо:

1. Открыть “КриптоПро CSP”, перейти на вкладку “Сервис” и нажать на кнопку “Установить личный сертификат”:

   Установка личного сертификата

2. Выбрать файл сертификата из загруженного и распакованного ранее архива (см. шаг 12 раздела Процесс получения сертификата КриптоПро), и нажать кнопку “Далее”:

   Установка личного сертификата

3. Нажать кнопку “Далее” на следующем шаге:

   Установка личного сертификата

4. Выбрать путь к контейнеру закрытого ключа, который был задан при формировании запроса на сертификат (см. шаг 5 раздела Процесс получения сертификата КриптоПро), и нажать “Далее”:

   Установка личного сертификата

5. Оставить включенной опцию “Установить сертификат (цепочку сертификатов) в контейнер”, и нажать “Далее”:

   Установка личного сертификата

6. Нажать кнопку “Готово”, в открывшемся окне ввести пароль от контейнера и нажать “ОК”:

   Установка личного сертификата

## Диагностическая информация по запросу

На форме Запрос создания сертификата предусмотрена кнопка `Скачать диагностическую информацию`, по нажатию на которую скачивается архив с диагностической информацией. Содержит, в том числе, информацию от адаптера. Данный архив может быть скачен и направлен в техническую поддержку при возникновении проблем или ошибок при запросе сертификата.

Скачивание диагностической информации