Как заставить произвольное приложение доверять моему SSL-сертификату?

Я установил charles (или любой другой mitm-прокси), установил его сертификат как корневой ЦС, запустил прокси 127.0.0.1:8889.

Однако простой request.get('https://stackoverflow.com/') в python не работает, выдает ошибку проверка сертификата не удалась. Документация charles предлагает исходный код, заставляющий доверять сертификату. session.verify = "charles-ssl-proxying-certificate.pem". Как и в случае с браузерами, инструкции находятся на https: https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/

Но что, если я хочу увидеть https-трафик произвольного .exe? У меня нет доступа к его источникам, и он не предоставляет никаких средств для импорта сертификатов (например, браузеров).


person exodus    schedule 11.11.2018    source источник
comment
Вы пытались установить поддельный сертификат в качестве корневого сертификата в базовой операционной системе?   -  person programmersn    schedule 11.11.2018
comment
Да. Но приложению все еще не доверяют. Я использовал Чарльза с проксификатором   -  person exodus    schedule 12.11.2018


Ответы (1)


Кажется, что у любого приложения есть собственный доверенный магазин, и python, похоже, не исключение.

Попробуйте этот подход из вашего кода Python:

Итак, в python мы также получаем ошибку для такого самозаверяющего сертификата. Мы можем исправить то же самое, передав сертификат

req = urlopen("https://dev.tarunlalwani.com/testme", cafile="/ vagrant/certs/selfsigned.crt") req.read() 'GET/testme\n'

Источник: http://tarunlalwani.com/post/self-signed-certificates-trusting-them/

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

Некоторый контекст:

На работе мы используем Ubuntu, и мы находимся за брандмауэром, который расшифровывает и проверяет весь https-трафик и снова шифрует его, чтобы отправить обратно в сеть, поэтому мы используем настраиваемые самозаверяющие сертификаты, и это заставило меня обнаружить, что мне нужно добавить самоподписанный сертификат для любого приложения, с которым я работаю.

person Exadra37    schedule 14.12.2018