Что такое mTLS и как это работает? Изучайте не в теории, а на практике!

mTLS часто пугает не сложностью, а ощущением, что ты попал в чужую зону ответственности. Сертификаты, цепочки, OpenSSL, clientID, clientSecret, access token — и непонятно, за что хвататься первым. Но на деле всё становится яснее, когда смотришь, как это делается руками.

Telegram-канал сообщества: https://t.me/getanalysts

В этом эпизоде разбираем mTLS-аутентификацию через практику на реальном Sber API: от подготовки сертификатов до получения access token и отправки API-запроса в Postman. Шаг за шагом, с ошибками, которые реально возникают в процессе, и решениями, которые помогают пройти дальше.

К концу выпуска понятно не только как это настроить mTLS, но и почему оно так работает. Отдельно разобрали, как системному аналитику описать требования к mTLS-аутентификации и что могут спросить про TLS/mTLS на собеседовании.

Выпуск будет полезен тем, кто проектирует интеграции с защищёнными API, пишет требования к API-аутентификации, готовится к собеседованию на Middle/Senior системного аналитика, а также всем, кто хочет разобраться с mTLS один раз — и больше не бояться сертификатов.

RuTube

VK

YouTube

Если плеер YouTube не запускается, необходимо включить VPN, либо переключиться на другой плеер (вкладки сверху).

Тайм-коды эпизода:

00:18 | Введение и знакомство со спикером
04:37 | Что такое mTLS и как он работает
05:30 | Практика в Postman по mTLS: подготовка
07:53 | Создание пространства в аккаунте Sber API
09:16 | Подключение приложения к пространству в Sber API
12:45 | Сохранение clientID и clientSecret. Загрузка сертификата
14:13 | Загрузка корневого и выпускающего сертификатов Минцифры с Госуслуг
16:29 | Распаковка сертификата Sber API с помощью OpenSSL
22:13 | Настройка сертификатов в Postman для mTLS
30:00 | Аутентификация через Postman с клиентским сертификатом: получение access token
37:33 | Лайфхак по параметризации запросов в Postman
38:41 | Отправка API-запроса в Postman с полученным токеном
46:29 | Вопросы с собеседований: что могут спросить системного аналитика про TLS и mTLS
54:03 | Оформление требований к mTLS-аутентификации
55:15 | Схема mTLS-аутентификации: разбор алгоритма
59:01 | Подведение итогов и рекомендации

Ведущая:
Екатерина Ананьева,
Основатель сообщества Системных Аналитиков GetAnalyst.
Гости:
Надежда Дудник,
Главный Инженер по Тестированию, Сбер,
Автор блога ProTestingInfo в Telegram.

Если вы ранее не работали с инструментом тестирования API Postman или Insomnia, то вам будет сложно проходить эту практику. Она рассчитана на специалистов уровня Middle+/Senior.

Перед этим эпизодом рекомендую познакомиться с Postman и получить навык работы с ним:

Postman: навык тестирования REST API за вечер
https://www.youtube.com/watch?v=1gy1WKUmWdU

Подборка практических руководств по Postman:
https://t.me/getanalysts/3006


Этап 1. Подготовка инструментов

Установите Postman на ваш компьютер:
https://www.postman.com/downloads/

Если пользуетесь онлайн-версией в браузере, то установите Postman-агента на ваш компьютер:
https://www.postman.com/downloads/postman-agent/

Если ни разу не работали с Postman, то рекомендую начать знакомство с ним по этому руководству: https://t.me/getanalysts/1910


Для работы с сертификатами потребуется использовать терминал, который поддерживает Linux-команды.

В зависимости от вашей ОС:

  • MacOS - ничего делать не надо, для открытия терминала Cmd + Пробел и ввести Terminal.
  • Linux - ничего делать не надо, для открытия терминала Ctrl + Alt + T.
  • Windows - установите Git Bash по инструкции предложенной, для открытия терминала Win + X.

Git Bash для Windows: https://git-scm.com/install/windows


Войдите в аккаунт разработчика на сайте Sber API.
https://api.developer.sber.ru/login

Работает только в России.

Этап 2. Создание пространства в аккаунте Sber API

Этап 3. Подключение приложения к пространству в аккаунте Sber API

Для выполнения тестового запроса будем использовать подписку в приложении:
https://api.developer.sber.ru/product/DEMOJSON.

Демонстрационный API (JSON) позволяет проверить подключение к платформе SberAPI, а также потренироваться в реализации простейших вызовов REST API.


Этап 5. Загрузка корневого и выпускающего сертификатов Минцифры с Госуслуг*

Сайт с сертификатом и подробной инструкцией по установке:
https://gosuslugi.ru/crt

*Необязательный шаг для работы с тестовым проектом представленным в подкасте.

Этап 6. Распаковка сертификата Sber API через OpenSSL

Windows:

 winpty openssl pkcs12 ‑in <имя_вашего_файла>.p12 ‑nodes ‑nocerts ‑out private.key
winpty openssl pkcs12 ‑in <имя_вашего_файла>.p12 ‑clcerts ‑nokeys ‑out client_cert.crt
winpty openssl pkcs12 ‑in <имя_вашего_файла>.p12 ‑clcerts ‑nokeys ‑out cacerts.cer

Mac:

 openssl pkcs12 ‑in <имя вашего файла>.p12 ‑nodes ‑nocerts ‑out private.key
openssl pkcs12 ‑in <имя вашего файла>.p12 ‑clcerts ‑nokeys ‑out client_cert.crt
openssl pkcs12 ‑in <имя вашего файла>.p12 ‑cacerts ‑nokeys ‑chain ‑out cacerts.cer

Этап 7. Настройка сертификатов в Postman

Где брать ссылки для настройки сертификата для Sber API:
https://api.developer.sber.ru/how-to-use/api_settings

Этап 8. Аутентификация через Postman с сертификатом и получение access token

Для генерации rqUID - уникальный идентификатор запроса:
https://www.uuidgenerator.net/

Этап 9. Лайфхак: параметризация запросов для удобной работы в Postman

access_token = pm.response.json().access_token; 
pm.collectionVariables.set(“access_token”, access_token);

Как открыть консоль в Postman

Подробная инструкция с картинками и ссылками:

✔️ Пошаговое руководство со ссылками и командами
✔️ Теория по mTLS - презентация подкаста
✔️ Руководство по началу работы с Postman

Имя *
Email *
Обратная связь / Пожелания

Бесплатное обучение

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

Youtube
Rutube
Linkedin
Instagram
VK
Habr
Blog
Podcast

*Instagram и LinkedIn — запрещенные на территории РФ организации

VK

Контакты

+7 (499) 686-15-46

Лицензия №Л035-01255-50/01366872 от 28.08.2024

VK
VK

Практический опыт здесь, 2021-2026

Индивидуальный предприниматель
Алтунин Дмитрий Михайлович
ИНН 503610364488

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