Как настроить Privoxy на обработку HTTPS трафика

[2024-04-27] Белый список, Прокси-сервер

Подразумевается, что у Вас уже есть предварительно установленный по статье установка и настройка прокси-сервера Privoxy рабочий вариант Privoxy.

Чтобы включить в Privoxy фильтрацию HTTPS трафика, предварительно нужно:
1) сделать самоподписанный SSL сертификат
2) добавить самоподписанный SSL сертификат в доверенные

Далее мы настроим всё таким образом, что Privoxy, используя наш подставной самоподписанный SSL сертификат, будет выдавать себя за целевой хост, расшифровывая клиентский трафик, а потом "от имени" клиента запрашивать web-страницы и передавать обработанный Privoxy ответ клиенту.

Предварительная донастройка Privoxy для перехвата и обработки HTTPS трафика

Копируем в Privoxy самоподписанный SSL сертификат

В директории с Privoxy нужно создать папку CA.

директория Privoxy

папка CA в директории Privoxy


Созданные по статье сделать самоподписанный SSL сертификат файлы cacert.crt и cakey.pem нужно скопировать в папку CA.

cacert.crt cakey.pem selfsigned

C:\privoxy\CA

privoxy CA cacert.crt cakey.pem

Работаем с конфигурационным файлом Privoxy

Далее открываем в "Блокноте" (или ещё каком-то текстовом редакторе) файл config.txt (главный конфигурационный файл Privoxy).

privoxy config.txt


Указываем директорию, в которой хранится наш подставной самоподписанный SSL сертификат:
ca-directory C:/privoxy/CA

ca-directory C:/privoxy/CA


Указываем имя файла SSL сертификата:
ca-cert-file cacert.crt

ca-cert-file cacert.crt privoxy


Указываем имя файла с ключом от SSL сертификата:
ca-key-file cakey.pem

ca-key-file cakey.pem privoxy

В принципе, предыдущие три параметра (ca-directory, ca-cert-file и ca-key-file) можно было и не указывать, так как по сути они повторяют параметры по-умолчанию (Default value).
Но это полезно для более глубокого понимания того, что мы делаем.

Далее указываем пароль от SSL сертификата, который Вы задавали при его генерации.
(Вы же ведь его записали или запомнили?)

Если Вы решили использовать мой готовый самоподписанный SSL сертификат со сроком действия 1000 лет, то прописываем его пароль:
ca-password swordfish20231223

ca-password privoxy ca-password


Задаём директорию, в которой Privoxy будет записывать сертификаты и их ключи, сгенерированные им в процессе работы с HTTPS трафиком.
Я выбрал директорию TEMP в директории WINDOWS:
certificate-directory C:/WINDOWS/Temp

Вы можете выбрать какую-либо другую директорию, но следует иметь в виду, что Privoxy эти временные файлы самостоятельно не удаляет.

certificate-directory privoxy certificate-directory


Задаём список шифров, которые Privoxy будет использовать при установке TLS соединения.
(Припоминаю, что в своё время долго возился с тем, чтобы подобрать рабочий список.)
Находим в конфиге раздел с упоминанием cipher-list...

cipher-list privoxy cipher-list

... и прописываем туда следующий список шифров:
cipher-list TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256:TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256:TLS-DHE-RSA-WITH-CHACHA20-POLY1305-SHA256:TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-ECDSA-WITH-AES-256-CCM:TLS-ECDHE-ECDSA-WITH-AES-256-CCM-8:TLS-ECDHE-ECDSA-WITH-AES-128-CCM:TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8:TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-GCM-SHA256:TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-RSA-WITH-CAMELLIA-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-CCM:TLS-DHE-RSA-WITH-AES-256-CCM-8:TLS-DHE-RSA-WITH-AES-128-CCM:TLS-DHE-RSA-WITH-AES-128-CCM-8:TLS-DHE-RSA-WITH-CAMELLIA-128-GCM-SHA256:TLS-ECDH-RSA-WITH-AES-128-GCM-SHA256:TLS-ECDH-RSA-WITH-CAMELLIA-128-GCM-SHA256:TLS-ECDH-RSA-WITH-CAMELLIA-256-GCM-SHA384:TLS-ECDH-ECDSA-WITH-AES-128-GCM-SHA256

privoxy config.txt


Задаём имя файла со списком официальных доверенных SSL сертификатов.
trusted-cas-file trustedCAs.pem

Где взять этот список будет рассмотрено чуть ниже.

privoxy cipher-list TLS RSA CHACHA20 POLY1305 SHA256 AES 128 AES128 CAMELLIA 128 CAMELLIA128 GCM SHA 256 SHA256

Скачиваем список доверенных сертификатов

Для работы Privoxy нужен список официальных доверенных SSL сертификатов.

На сайте CURL (известной утилиты для скачивания всего) есть страница https://curl.se/docs/caextract.html.
На этой странице регулярно выкладывается список доверенных SSL сертификатов, который они выковыривают из релизов браузера Firefox.

CA certificates extracted from Mozilla Firefox PEM https://curl.se/docs/caextract.html

По ссылке https://curl.se/ca/cacert.pem скачиваем список официальных доверенных SSL сертификатов и куда-нибудь его сохраняем...

privoxy cacert.pem https://curl.se/ca/cacert.pem

... и переименовываем в trustedCAs.pem

privoxy trustedCAs.pem


Файл trustedCAs.pem копируем в директорию C:\privoxy\CA

trustedCAs.pem

C:\privoxy\CA trustedCAs.pem

trustedCAs.pem CA privoxy

Включаем обработку и перехват HTTPS трафика в Privoxy

Наконец-то мы добрались до самого главного... :-)

В "Блокноте" открываем файл user.action и прокручиваем его до самого конца.

user.action privoxy


В самом конце файла user.action дописываем следующие действия:

{+https-inspection}
.

{+ignore-certificate-errors}
.

https-inspection ignore-certificate-errors user.action privoxy

Действие {+https-inspection} "применительно к точке" разрешает анализ HTTPS-трафика для любого URL'а (здесь точка значит "любой").

Действием {+ignore-certificate-errors} на всякий случай включаем игнорирование ошибок, связанных с SSL сертификатами.

На этом всё. :-)   Мы включили перехват и обработку HTTPS трафика в Privoxy.


© 1999 - 2024 www.Balpom.ru