Как заставить произвольное приложение доверять моему SSL-сертификату? - PullRequest
0 голосов
/ 11 ноября 2018

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

Тем не менее, простой запрос.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? У меня нет доступа к его источникам, и он не предоставляет никаких средств для импорта сертификатов (например, браузеров).

1 Ответ

0 голосов
/ 14 декабря 2018

Кажется, что любое приложение имеет собственное доверенное хранилище, и 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-трафик и снова его шифрует для отправки обратно на провод, поэтому мы используем собственные самозаверяющие сертификаты, и это заставило меня обнаружить, что мне нужно добавить самоподписанный сертификат для любого приложения, с которым я работаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...