Как добавить сертификат Минцифры при работе по API
Для сохранения доступности сервисов и систем API от Сбера в срок до 30.04.2023 добавьте сертификаты Национального удостоверяющего центра Минцифры России.
Для данных целей введен в действие шлюз API mc.api.sberbank.ru:443.
Для переключения шлюза на стороне вашей системы необходимо выполнить следующие действия:
Добавить доверенные сертификаты.
Добавить доверенные сертификаты УЦ Министерства цифрового развития, связи и массовых коммуникаций РФ в список доверенных сертификатов ваших систем. Пошаговое описание по настройке — в разделе Добавляем доверенные сертификаты шлюзов УЦ Минцифры в настройки системы.
Указать значение шлюза.
Заменить в параметрах взаимодействия значения адреса шлюза на mc.api.sberbank.ru.
Указать значение порта.
Заменить в параметрах взаимодействия значения номера порта на 443 (или можно вообще не указывать, т. к. данный порт используется по умолчанию). Остальные параметры вызова остаются неизменными.
Например, получение токена:
После переключения взаимодействия на новый шлюз никаких дополнительных действий не требуется.
Для предварительной проверки параметров взаимодействия с новым шлюзом можно воспользоваться демонстрационным API (https://api.developer.sber.ru/product/DEMOJSON), подписка на который доступна без заключения дополнительного соглашения.
Параметры авторизации и формат запроса/ответа для проверки подключения приведены ниже в Инструкции по проверке параметров взаимодействия со шлюзом API, с использованием демонстрационного API.
В случае возникновения вопросов или ошибок при переключении на mc.api.sberbank.ru, свяжитесь с нами по e-mail: info.developer@sberbank.ru.
Добавляем доверенные сертификаты в настройки системы
Списки доверенных сертификатов УЦ Министерства цифрового развития, связи и массовых коммуникаций РФ в двух наиболее часто используемых форматах хранилища доверенных сертификатов (далее truststore):
Название | Дата публикации |
---|---|
russian-trusted-cacert.pem | 23 марта 2023 |
russian-trusted-cacert.jks | 23 марта 2023 |
В зависимости от ПО, используемого для взаимодействия со шлюзом API, в параметрах подключения к шлюзу API Сбера укажите один из приложенный файлов в качестве truststore.
Если вы хотите добавить сертификаты шлюзов API Сбербанка из приложенного файла в ваш существующий truststore, выполните команду:
- Для формата PEM
- Для формата Java Keystore (JKS)
cat russian-trusted-cacert.pem >> truststore
trsuststore
– имя вашего существующего файла со списком доверенных сертификатов.
keytool -importkeystore -srckeystore russian-trusted-cacert.jks -srcstoretype jks -srcstorepass sberapi -destkeystore <keystore filename> -deststorepass <keystore pass>
keystore filename
– имя файла существующего хранилища, а keystore pass
– пароль от существующего хранилища.
Проверяем параметры взаимодействия со шлюзом API
Демонстрационный API позволяет подключиться к API в роли потребителя и протестировать подключение к платформе SberAPI.
Демонстрационный API доступен для подписки всем организациям на портале api.developer.sber.ru без заключения дополнительного договора.
Адрес вызова демонстрационного API, метод проверки подключения:
GET https://mc.api.sberbank.ru/prod/demo/json/v1/connectInfo
Значение scope для получение токена авторизации: auth://demo/json
.
Описание атрибутов:
Наименование | Описание |
---|---|
RqUID | Уникальный идентификатор сообщения. Обязательный параметр. • Размещение: HTTP-заголовок . • Тип данных: string . • Количество символов: 32. • pattern: ^[0-9a-fA-F]{32}$ . • Пример: 0123456789ABCDEF0123456789ABCDEF |
paramName | Простой строковый параметр запроса. Обязательный параметр. • Размещение: query . • Допустимые значения: aDF98YTaDF98YTaDF98Y или MaH98GFMaH98GFMaH98G . |
Получение токена:
curl --location --request POST 'https://mc.api.sberbank.ru:443/prod/tokens/v3/oauth' \
--header 'RqUID: <значение, удовлетворяющее паттерну ^[0-9a-fA-F]{32}$>' \
--header 'Authorization: Basic <закодированное в base64 значение client_id:client_secret>' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'scope=auth://demo/json' \
--cert-type P12 --cert {путь до контейнера p12}:{пароль от контейнера} \
--cacert russian-trusted-cacert.pem
Тестовый бизнес-запрос:
curl --location --request GET 'https://mc.api.sberbank.ru:443/prod/demo/json/v1/connectInfo?paramName=MaH98GFMaH98GFMaH98G' \
--header 'RqUID: <значение, удовлетворяющее паттерну ^[0-9a-fA-F]{32}$>' \
--header 'Authorization: Bearer <access_token> ' \
--cert-type P12 --cert {путь до контейнера p12}:{пароль от контейнера} \
--cacert russian-trusted-cacert.pem
Пример ответа:
{
"RqUID": "0123456789ABCDEF0123456789ABCDEF",
"paramName": "MaH98GFMaH98GFMaH98G",
"clientId": "f1111b1f-11fc-1f1d-a1b1-e11111ae1111",
"clientCertFingerprint": "4vbnm11b064e111c7qqq27e7cb40www3f3a9ii3c",
"clientSerialNumber": "111CE1A111F117B1111FD1111E1DD1E11C1BC111",
"xSubject": "CN=f3875b8f-23fc-4f3d-a0b8-e44237ae3756,O=SberApiTesting"
}