HTTPS прокси, как Чарльз - PullRequest
0 голосов
/ 23 октября 2019

Я хочу реализовать прокси-сервер в node.js, который чем-то похож на прокси-сервер Charles - он должен перехватывать HTTPS-запросы от моего мобильного приложения, расшифровывать их, направлять некоторые из них в зависимости от содержимого тела в исходный бэкэнд и издеваться над другими с некоторымистатические файлы.

  1. Как этот HTTPS-контент обрабатывается в Charles или других прокси?
  2. Нужно ли мне подписывать корневой сертификат на мобильном устройстве?
  3. Есть ли какие-нибудьбиблиотеки которые мне помогут?

Ответы [ 2 ]

3 голосов
/ 23 октября 2019
  1. Как этот HTTPS-контент обрабатывается в Charles или других прокси?

Технически, Charles Proxy или Proxyman.io (одинЯ использую сейчас) будет делать следующие шаги:

  • Создать корневой сертификат и установить в связку ключей и доверять ему. Эти шаги будут выполнены один раз.
  • Откройте локальный сервер (на 8888 или 9090).
  • Переопределите прокси-сервер HTTP в системе для этого порта. Таким образом, весь трафик будет проходить через порт. Вы можете использовать CLI networksetup, чтобы легко получить или инструмент Privileged Helper на macOS, для обеспечения высокой производительности и безопасности.
  • Как только захватите первый сокет: если это HTTP-запрос, получите сообщение первой строки. Пример:
GET https://api.producthunt.com/v1/posts HTTP/1.1
  • Затем откройте сокет переадресации для этого URL.
  • Если это HTTPS, обязательно выполните SSL-Handshake, а затем получите сообщение первой строки.
  • Наконец, просто получите оставшуюся часть сообщения и проанализируйте правильное сообщение (потенциальным кандидатом может быть HTTPCParser от NodeJS)
  • Отправка данных вперед и назад от клиента иконечный сервер.
  • Делайте манипуляции с действиями, если вам это нужно, так как вы - истинный довод.
  • Потребуется ли мне подписанное мобильное устройство для корневой сертификации?
  • Существуют ли какие-либо библиотеки, которые мне помогут?
0 голосов
/ 23 октября 2019

Использование Charles Proxy для просмотра запросов вашего мобильного телефона очень просто.

Вот простое видео о том, как его настроить. https://www.youtube.com/watch?v=AW2vTBRfOrU

...