HTTPS-трафик зашифрован и использует SSL протокол (Secure Sockets Layer ) для защиты передаваемой информации от посторонних лиц. Тем не менее, HTTPS трафик может представлять угрозу безопасности и скрывать незаконную деятельность сотрудников и вредоносный трафик. Также трафик передаваемый по HTTPS не полностью отображается в лог файлах Squid HTTPS прокси и как следствие, в отчетах ProxyInspector. Данную проблему можно исправить с помощью функции Squid SSL bump, она позволяет осуществлять расшифровку и запись в лог файл запросов передаваемых по протоколу HTTPS.
Для работы Squid SSL bump необходимо создать корневой сертификат:
openssl req -new -newkey rsa:2048 -sha256 -days 365 -nodes -x509 -extensions v3_ca -keyout proxyCA.pem -out proxyCA.pem
Как правило данный сертификат хранится в каталоге /etc/squid/ssl_cert/. Данный сертификат должен быть установлен как корневой в браузерах всех пользователей, для чего его необходимо конвертировать в .der формат:
openssl x509 -in proxyCA.pem -outform DER -out proxyCA.der
Для установки сертификата в браузер(на примере Chrome), необходимо открыть Настройки | Показать дополнительные настройки | HTTPS/SSL | Настроить сертификаты, и импортировать сертификат в раздел Доверенные корневые центры сертификации.
Без установки сертификата в браузеры пользователей, при каждом запросе страницы через Squid HTTPS прокси, будет выдаваться предупреждение безопасности, что крайне неудобно.
Как правило версия включенная в поставку дистрибутива Linux собрана без поддержки SSL, поэтому необходимо пересобрать последнюю версию c ключами:
./configure \ --with-openssl \ --enable-ssl-crtd
Инструкции по сборке Squid 3.5 из исходных кодов:
Windows версия как правило изначально собрана с этими опциями:
Скачать Squid для Windows.
В конфигурационный файл squid.conf нужно добавить следующие строки(где /etc/squid/ssl_cert/proxyCA.pem - ранее созданный сертификат):
http_port 3128 ssl-bump \ cert=/etc/squid/ssl_cert/proxyCA.pem \ generate-host-certificates=on dynamic_cert_mem_cache_size=4MB acl step1 at_step SslBump1 ssl_bump peek step1 ssl_bump bump all sslproxy_cafile /usr/local/openssl/cabundle.file
После выполнения данных настроек, информация обо всех запросах выполненных по протоколу HTTPS через Squid прокси будет записываться в лог файл access.log, также как и запросы выполненные по HTTP.
На некоторых сайтах будут возникать ошибки связанные с невозможностью проверки корневого сертификата. В данном случае необходимо либо добавить данные корневые сертификаты в файл cabundle.file либо отключить проверку сертификатов в squid.conf (ЭТО НЕБЕЗОПАСНО!):
sslproxy_cert_error allow all sslproxy_flags DONT_VERIFY_PEER
Теги: squid, ssl bump, ssl, https, proxyinspector