Резюме: Вы действительно не хотите этого делать.
К счастью, есть только один способ сделать это, и он уродлив, ненадежен и небезопасен. Вы должны настроить свой прокси-сервер, чтобы он действовал как терминатор HTTPS, который перехватывает соединения, сделанные с клиента, и создает новое соединение с целевым сайтом. Теперь вы можете изменить данные перед отправкой клиенту.
Однако клиент ожидает зашифрованное соединение, подписанное правильным сертификатом. У вас нет этого сертификата, поэтому все браузеры просто разорвут соединение или, если вы повторно подпишитесь своим собственным сертификатом, пожалуются на недействительный сертификат. Это приведет к огромным сообщениям об ошибках на каждом клиенте, так что это будет проблемой.
Этого можно избежать, установив на все клиентские машины новый самозаверяющий корневой сертификат, действительный для всех сайтов, и подписать данные этим сертификатом. Теперь ваши клиенты примут подключение и будут радостно отображать модифицированные сайты.
Однако теперь вы разорвали цепочку доверия, подразумеваемую TLS, и теперь вы несете единоличную ответственность за безопасность между клиентом и пунктом назначения. Когда я подключаюсь к своему банку, наличие TLS гарантирует, что я а) подключен к реальному веб-сайту моего банка и б) никто не сможет перехватить мои, например, данные для входа. Вы нарушили и A, и B, потому что я больше не могу доверять тому, что я подключен к реальному веб-сайту, который я намеревался посетить, и вы или любое злонамеренное третье лицо можете перехватить и прочитать трафик между мной и моим банком, просто злоупотребив / взлом вашего прокси-сервера.
Кроме того, с помощью таких методов, как закрепление открытого ключа HTTP, и сайты, и браузеры вооружаются против поставщиков брандмауэров, антивирусных программ. компаний и интернет-провайдеров с такими плохими идеями. Потому что это именно то, что есть, очень плохая идея.
Пожалуйста, пожалуйста, не делай этого.
person
Alex
schedule
01.06.2015