Проверка ssl сертификата посредством JS — как обойти при необходимости использовать MITM?
Ситуация. Есть свой прокси, умеющий в логирование har, которое мне необходимо для работы. Для этого я использую один из вариантов прокси, умеющий в MITM. Плюс устанавливаю его сертфикат корневым в браузере, чтобы последний не ругался на незащищенное соединение. При этом, есть сайты, где, как я понимаю, есть проверка сертификатов на уровне javascript. Насколько я понимаю, они таким образом дополнительно защищаются от фрода.
И вот тут возникает проблема - данные сайты не пускают меня, реального человека, к себе, так как видимо считают, что мой браузер скомпрометирован, видя какие-то проблемы с сертификатом. Вопрос - как мне обойти это все? Есть ли вообще возможность сделать это, не потеряв возможности логировать запросы к защищенным сайтам на уровне прокси?
Именно для этого в сквиде, например, есть режим splice, который не врезается в соединение. На самом деле "обломать" такой MitM довольно просто - достаточно проверять серийник сертификата с тем, который был заранее установлен в локальную базу. И выдавший CA. - Если что-то не совпало - бэмц, нас ломают. Я с таким сталкивался на сайтах клиент-банков, на сайте дополнений мозиллы - мозилла рвет соединение, не принимая сертификат - и все.
Конечно, администрирование таких сайтов усложняется - нужно вовремя менять сертификаты в локальной базе etc. Но видимо считают, что стоит того.
А как быть, если мой прокси должен иметь возможность авторизироваться на следующем в цепочке сервере? Я это реализовывал через вставку хедеров (так работает тот сервис, который я использую) с параметрами авторизации. Опять никак? :-)
Да, и https://addons.mozilla.org/ru/firefox/ у меня кстати так открывается. Даже без установки сертификата от моего прокси, просто с опцией игноирования браузером проблем с сертификатами.
Станислав, Ну, значит squid это делает немного по-другому, потому что у меня не открывался - выдавал ошибку установления соединения и игнорнировать не предлагал.
CityCat4, попробовал через mitmproxy кстати, проверяемые мной сайты так постоянно крутят проверку через JS, а сайт аддонов Мозиллы да, вообще отказывается работать, у него HSTS и на него не зайти даже если захотеть самому сказать браузеру, что я доверяю своему кривому сертификату.
Вернее, браузер просто не предложит такой опции, если он там уже бывал. Но, если почистить вот тут политики (Delete domain security policies), то такой выбор предложен будет, и можно будет зайти на нужный домен. Это не решение моей проблемы, это так, для тех кто прочитает после, как можно все-таки попасть на сайты, защищенные HSTS, при использовании "плохих" сертификатов.