В работе имеется прокси-сервер Squid 4.9, работающий с HTTPS поддержкой. Столкнулся с проблемой в работе мессанджера Whatsapp (Web, Desktop версии) на конечных системах.
Проблема заключается в том что web, desktop версии Whatsapp не соединяются со своими серверами и выдают сообщение что отсутствует подключение к сети интернет. В логах Squid (access.log) видны следующие события при попытке Whatsapp установить соединение:
1582785108.113 154 10.10.15.9 TCP_MISS/400 231 GET https://web.whatsapp.com/ws - ORIGINAL_DST/31.13.72.52 - 1582785108.278 161 10.10.15.9 TCP_REFRESH_MODIFIED/200 390 GET https://web.whatsapp.com/status.json - ORIGINAL_DST/31.13.72.52 text/json
Видно что приложение пытается открыть WebSocket соединение, о чем свидетельствует /ws в строке запроса. Так же в браузере при просмотре кода можно увидеть что не удается выполнить WebSocket соединение (WebSocket connection to ‘wss://web.whatsapp.com/ws’ failed: Error during WebSocket handshake: Unexpected response code: 400)
Чтобы решить данную проблему нужно чтобы Squid не пытался посмотреть HTTPS трафик в направлении whatsapp адресов, а просто выполнял соединение.
Для этого создадим файл (прим. /etc/squid/sites_webwhatsapp.txt) в котором укажем для каких сайтов не предпринимать никаких действий:
w[0-9]+\.web\.whatsapp\.com$ \.web\.whatsapp\.com$ web\.whatsapp\.com$
В конфигурационном файле (/etc/squid/squid.conf) указываем следующие параметры:
acl whatsapp ssl::server_name_regex -i "/etc/squid/sites_whatsapp.txt" acl step1 at_step SslBump1 ssl_bump splice whatsapp ssl_bump peek step1 ssl_bump bump all
Перечитываем конфиг squid (/etc/init.d/squid reload) и проверяем работу.
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
Оставить ответ