2012-02-02 2 views
0

Что я пытаюсь сделать: создать несколько TLS-серверов, которые прослушивают один и тот же порт. Каждый сервер TLS имеет различный набор сертификатов и должен допускать только определенный набор клиентов. Например, первый сервер TLS должен разрешить Client X, а не Client Y. Второй сервер TLS должен разрешать Client Y, а не Client X.nodejs cluster different TLS Обработка сеанса

Проблема, с которой я столкнулась, заключается в том, что клиент Y и X соединяются только с первым сервером TLS. Используемые сертификаты TLS различаются для каждого клиента, подписанного разными серверами TLS, но они, как правило, подключаются только к первому серверу TLS.

Поблагодарили бы за какие-либо мысли по этому вопросу.

+0

Есть ли у них разные домены или все то же самое, что и сертификаты? –

+0

Идея заключалась в том, чтобы использовать тот же домен и различать пользователей в зависимости от сервера, который подписывает сертификат для него. – Janon

ответ

0

Эта установка просто не сработает. cluster API позволяет нескольким сотрудникам совместно использовать порт, но нет никаких сведений о том, какой работник получает выделение на какие запросы. Если загрузки не так много, вполне возможно, что только один работник получит все запросы.

Я не уверен, что вы пытаетесь сделать, но если вы думаете об этом, такая настройка не имеет смысла. Если у вас разные сертификаты, то сеанс TLS не может быть успешно настроен. Это было бы похоже на попытку привязки нескольких сертификатов SSL к одному и тому же IP-адресу.

Единственный способ, которым я мог видеть, что это работает, - это если каждый из этих разных сертификатов соответствует другому имени хоста. В этом случае вы можете попробовать использовать SNI, как описано в http://nodejs.org/docs/latest/api/tls.html#tls.connect. Тем не менее, каждому рабочему процессу все равно придется обращаться к одному и тому же пулу сертификатов.

+1

Спасибо Рохану за ваш ответ. Да, с некоторыми экспериментами я пришел к такому же выводу, что рабочий поток, который получает сообщение, случайный. Я собираюсь продвигать решение SNI и полагаться на имя сервера для обработки разных сертификатов. – Janon

+0

@Janon Звучит неплохо. Одна вещь, с которой я буду опасаться, - это поддержка браузера. Старые браузеры и некоторые версии Android не поддерживают SNI. Возможно, стоит заглянуть в детали. –