Взаимодействие между вами и Банком реализовано с использованием двухстороннего TLS-соединения (поддерживаемая версия TLS 1.2), для которого необходимо выпустить сертификат.
Инструкция по выпуску сертификата
Для выпуска сертификата необходимо сгенерировать закрытый ключ и запрос на сертификат в OpenSSL, выпустить сертификат и установить в своей системе:
1
Используйте готовый файл конфигурации с обязательными атрибутами в subject
Воспользуйтесь заранее подготовленным конфигурационным файлом: openssl_INNLE.cnf. Файл уже содержит все необходимые атрибуты и не требует внесения изменений. Все остальные параметры будут введены вручную через терминал в процессе генерации закрытого ключа и запроса на сертификат.
Если возникает ошибка object identifier routines:OBJ_create:oid exists, необходимо закомментировать строку с объявлением этого OID в начале файла, строка INNLE=1.2.643.100.4
2
Сгенерируйте закрытый ключ, введя команду в терминале
1.
Откройте терминал и перейдите в папку, в которой находится скачанный ранее файл openssl_INNLE.cnf. Если файл был сохранён в папку "Загрузки", перейдите в неё, используя следующую команду: cd ~/Downloads
2.
Убедитесь, что в этой папке находится файл openssl_INNLE.cnf, используя команду: ls. Вы должны увидеть в выводе файл openssl_INNLE.cnf.
После ввода команды вам будет предложено задать пароль для закрытого ключа (PEM pass phrase). Введите пароль и подтвердите его повторным вводом. Пароль необходимо запомнить, так как он потребуется на следующих шагах.
5.
После выполнения команды в текущей папке будет создан файл Company.key, содержащий закрытый ключ.
Когда терминал запросит подтверждение действий, введите дважды пароль от вашего Mac OS
3
На основе созданного ключа сгенерируйте запрос на сертификат (CSR) с приватным ключом RSA
1.
Введите следующую команду для создания запроса на сертификат (CSR): openssl req -utf8 -config openssl_INNLE.cnf -key Company.key -new -sha256 -out Company.csr
2.
Атрибут CLIENT_ID, а также поля An optional company name и A challenge password являются опциональными и могут быть оставлены пустыми.
3.
Выполните команду и введите указанные данные, когда терминал запросит их. После выполнения команды будет создан файл Company.csr, содержащий запрос на сертификат:
Пример работы в терминале
1(base) johnsmith@johnsmiths-MacBook-Pro Downloads % openssl req -utf8 -config openssl_INNLE.cnf -key Company.key -new -sha256 -out Company.csr
2Enter pass phrase for Company.key:
3You are about to be asked to enter information that will be incorporated
4into your certificate request.
5What you are about to enter is what is called a Distinguished Name or a DN.
6There are quite a few fields but you can leave some blank
7For some fields there will be a default value,
8If you enter '.', the field will be left blank.
9CLIENT_ID []:b95eo4ed-91fe-430a-a101-894f06f3ab2a
1011Please enter the following 'extra' attributes
12to be sent with your certificate request
13A challenge password []:1234
14An optional company name []:
Рекомендации для Mac OS
В примере выше openssl_INNLE.cnf - имя вашего конфигурационного файла. Пропишите полный путь файла конфиг (начиная с папки /Users/.../openssl.cnf). Заполните необходимые поля: название компании, ФИО и ИНН. Файлы Company.csr (открытый ключ) и Company.key (закрытый ключ) проверьте в вашей корневой папке
4
Проверьте наличие обязательных атрибутов в subject созданного запроса на сертификат
Выпустите TLS-сертификат на Портале разработчика в разделе TLS-сертификаты, прикрепив ранее созданный запрос на сертификат Company.csr, и скачайте его. Подробнее в статье Портал разработчика / Выпуск TLS-сертификата.
Важно! Никому не передавайте закрытый ключ.
Срок действия сертификата - 365 дней. По истечении срока действия сертификата необходимо будет выпустить новый TLS-сертификат
6
Создайте pfx-файл для установки сертификата в системе
Полученный файл Company.pfx необходимо установить в своей системе.
Действия при компрометации закрытого ключа
В случае компрометации закрытого ключа сообщите на почту alfa_api@alfabank.ru о компрометации ключа для отзыва сертификата и выпустите новый сертификат
Требования к сертификату
Чтобы обеспечить проверку вашей системы на основе сертификата, в subject сертификата предусмотрены обязательные поля:
Global Subject
Атрибут
Значение
СountryName
Страна, в виде двухсимвольного ISO-кода. Для России: RU
OrganizationName
Название организации
CommonName
ФИО представителя организации
EmailAddress
Электронный адрес для обратной связи (служебный, не персональный)
В зависимости от правовой формы должно быть указано одно из нижеперечисленных полей:
Variable Subject
Атрибут
Значение
Для юридических лиц в России
INNLE = 1.2.643.100.4
Для иностранных партнёров
FOREIGNID = 1.3.6.1.4.1.16745.100.1
Идентификатор партнёрского сервиса
CLIENT_ID = 1.3.6.1.4.1.16745.100.2
Требования к полям сертификата
1.
Поля на кириллице
•
Поля CountryName , OrganizationName и CommonName могут быть указаны либо в транслитерации, либо кириллицей с использованием кодировки UTF-8.
2.
ИНН
•
Для заполнения ИНН вам будут предложены два поля: INNLE и INN . Юридическим лицам и ИП заполнять поле INNне требуется, а ИНН необходимо указать в поле INNLE :
•
юридическим лицам: десятизначный цифровой код без дефисов и пробелов.
•
ИП: двенадцатизначный цифровой код без дефисов и пробелов.
3.
СНИЛС
•
Поле SNILS является опциональным, юридическим лицам и ИП заполнять его не требуется.
4.
LDAP Профиль
•
Поля CountryName и INNLE должны строго совпадать с соответствующими значениями, используемыми в профиле LDAP, так как они формируют имя профиля.
Настройка кодировки UTF-8 для использования кириллицы при генерации сертификата
Чтобы иметь возможность вводить параметры на кириллице в полях countryName, organizationName и commonName при генерации запроса на сертификат (CSR), выполните следующие действия.
1.
Для пользователей Windows
•
Откройте Панель управления > Часы и регион > Регион.
•
Перейдите на вкладку Дополнительно.
•
Нажмите Изменить язык системы.
•
Установите флажок «Бета-версия: Использовать Юникод (UTF-8) для поддержки языка во всем мире».
•
Нажмите ОК и перезагрузите компьютер.
2.
Для пользователей MacOS
•
Откройте Терминал.
•
В меню выберите Terminal > Настройки.
•
Перейдите во вкладку Кодировки и убедитесь, что установлен флажок «Unicode (UTF-8)».
Использование сертификата
Использование TLS-сертификата необходимо для установки mTLS-соединения и является обязательным.
Для успешной установки mTLS-соединения в зависимости от требований используемого вами клиента при отправке запросов вам может понадобиться сертификат и закрытый ключ. Рекомендуем ознакомиться с документацией используемого клиента.
Ниже представлен пример запроса с установкой mTLS-соединения с помощью cURL.
За 1 месяц до истечения срока действия TLS-сертификата вам на почту придет уведомление, после чего вам будет необходимо сформировать запрос на новый сертификат и направить в Банк в соответствии с инструкцией выше.
При перевыпуске сертификата рекомендуем:
•
установить защиту на удаление сформированного закрытого ключа;
•
перезаписать старый закрытый ключ на новый.
В случае, если вы по каким-либо причинам утратили сертификат, не предоставили запрос на сертификат или не выполнили установку нового сертификата на своей стороне, в том числе и в настройках приложения на портале, то вся ответственность по простою из-за утраты доступа к Alfa API возлагается на вас.