angle-left

Проксируем HTTPS без «человека посередине»

Доброе утро!

Данная заметка, по сути своей, является продолжением статьи моего коллеги.

Обрисую ситуацию: есть haproxy, балансирующий некоторый набор сервисов на одном порту, включая nginx. Примерно как и в случае по ссылке выше. Кроме того, внури моей сети внезапно оказался один из серверов товарища. И вдруг ему захотелось поднять на 443-ем порту веб-сайтик. Он выделил поддомен, озаботился с TLS-сертификатами, а дальше пришёл ко мне с посылом „я направлю на тебя свою A-запись, можешь сделать в своём nginx-е что-то вроде proxy_pass, только чтобы мои сертификаты остались?“. Я сказал „да не вопрос“, а потом задумался, как бы это сделать.

Первое, что приходит в голову — отдельный server{} в nginx. И сразу же уходит — для того, чтобы посмотреть заголовок Host нужно „забампить“ TLS-соединение, что условиям задачи не удовлетворяет. Что делать? Вспоминается такая штука, как SNI. Кроме того, учитываем тот факт, что первые байты при соединении и так прочитает haproxy. Почему бы не сделать это там?

В случае с конфигом из приведённой вначале текста статьи, правки тривиальны. Добавляем новый backend:

backend subdomain-example-com
  mode tcp                                                                     
  timeout server 2h                                                            
  server https-subdomain-example-com 192.168.38.10:443

Имена произвольные, IP сервера из внутренней сети, где слушает „чужой“ nginx.

Теперь нужно научить haproxy на этот backend кого-то посылать. При чём делать это по SNI, а не весь подряд https-трафик. И haproxy это умеет! В уже имеющийся frontend добавим следующее условие:

  use_backend subdomain-example-com if { req_ssl_sni -i subdomain.example.com }

Здорово!

При таком подходе стоит учитывать, что данная строка должна стоять до use_backend https if { req.ssl_hello_type 1 }, потому что в противном случае запрос клиента до неё просто не дойдёт. То есть, сначала проверяем по SNI, а потом уже отсылаем на веб-сервер «по-умолчанию».

Работаю в компании Tune-IT, разрабатываю софт. Могу писать на perl. Могу не писать. Могу клаву так заныкать, что фиг найдёшь.

Что умеет ваш портал?

Наш портал уже "из коробки" умеет очень многое. Сразу же после установки вы сможете использовать следующие компоненты:

Справочник сотрудников

Удобный агрегатор контактной информации, адресов и телефонов всех сотрудников компании.

Интеграция с IP-телефонией

Вы можете позвонить любому сотруднику, просто кликнув по иконке на его карточке в справочнике.

Встроенный клиент Webmail

Все ваши сотрудники могут пользоваться корпоративной электронной почты без необходимости настройки почтового клиента.

Вики-справочник

Централизованное хранилище для всей информации, необходимой сотрудникам для решения их повседневных задач.

Интеграция с сервером печати

Печать и сканирование документов через прямо веб-интерфейс портала - без необходимости установки драйверов принтера на компьютеры сотрудников.

Файловое хранилище

В портал встроено файловое хранилище с поддержкой версионирования файлов. Каждый пользователь имеет свой домашний каталог, доступный как через веб-интерфейс, так и через проводник Windows.

Мультимедиа-возможности

Встроенные фото- и видеогалерея позволяют просматривать фотографии и видео прямо на портале.

Социальные коммуникации

В портал встроена полноценная корпоративная социальная сеть. Сотрудники могут обмениваться сообщениями, файлами и общаться в форуме.

Кроме того, вы можете воспользоваться любым из сотен плагинов, доступных на Liferay Marketplace.

Сколько это будет стоить?

Как уже было сказано выше, вы можете использовать наш интранет-портал абсолютно бесплатно и без каких-либо ограничений на количество пользователей или параллельно запущенных сессий. Единственное, чего вы не получите в бесплатной лицензии - это техническая поддержка.

Существует несколько уровней технической поддержки, отличающихся друг от друга SLA и стоимостью.

  Free Basic 24x7
Количество пользователей
Количество сессий
Email hotline нет есть есть
Phone hotline нет нет есть
Обращений в месяц - 10
Режим технической поддержки - 8x5 24x7
Стоимость Бесплатно 20 000 /месяц 100 000 /месяц

 

OK, мне всё это нравится. Где я могу скачать ваш портал?

В настоящий момент портал находится в стадии бета-тестирования. Когда мы закончим, ссылка на скачивание и инструкция по установке появятся вот здесь

Если вы заинтересовались решением, или хотите поучаствовать в бета-тестировании - пожалуйста, напишите нам!