Re: [offtopic] ценнник на IP-адреса
Ivan Shmakov -> debian-russian@lists.debian.org @ Wed, 28 Nov 2012 14:58:10 +0700:
>>>> SNI = Service Name Indication подробности в гугле
>>> У меня запущен Nginx на localhost:4443 и Lighttpd на localhost:5443
>>> — каждый со своим ключем и сертификатом. Я хочу сделать «front-end»
>>> на Apache, :443, чтобы в зависимости от имени
>>> (https://foo.example.org/, https://bar.example.org/) соединение
>>> устанавливалось с тем или иным HTTPS-сервером. Как SNI мне в этом
>>> случае поможет?
>> Это не та задача, которую решает SNI. Вы хотите
>> т. н. "https-форвард".
IS> На деле, мне требуется, чтобы по https://foo.example.org/,
IS> https://bar.example.org/ были доступны различные сервера
IS> (возможно, обслуживаемые различными администраторами), доступные
IS> извне через один и тот же IP-адрес — что имеет смысл, главным
IS> образом, в случае IPv4. (Напротив, при использовании IPv6
IS> выделить отдельные адреса для этих серверов не составит труда.)
>> Но можно сделать подобное, если подойти иначе: SNI приводит клиента
>> на нужный виртуалхост апача, далее проксируете куда нужно.
>> Разумеется, ключи и сертификаты виртуалхостов нужно передать Апачу,
>> иначе он не сможет провести хэндшейк,
IS> Именно так. Однако, тем самым, в «цепи доверия» появляется
IS> «лишняя сущность» — администратор proxy.
... он же, по совместительству, root того хоста, на котором крутятся
бэкэнды (поскольку они показываются на localhost). То есть имеет
непосредственный доступ к секретным ключам от сертификатов бэкэндов. Ты
все еще хочешь ему не доверять?
Нет, в принципе, конечно, можно сделать так, чтобы администратор прокси
не имел рута, а рут имел доступ только к зашифрованным ключам (ну да,
еще к памяти, но поди еще там найди расшифрованный ключ). Но ценой,
во-первых, изрядного геморроя, а во-вторых, снижения доступности
сервисов. Ты точно так делашь?
Кстати, я сейчас не то чтобы вспомню точно протокол TLS, а тем более -
где там SNI появляется. Не исключено, что можно пробросить коннект.
Явно указание имени хоста должно появиться в клиентском запросе ДО
начала использования ключей и по-хорошему, даже конкретных шифрсьютов
(потому что сертификаты-то разные), то есть буквально в hello-пакете. В
этот момент шифрование еще не пошло, и прокинуть соединение, в общем,
можно.
Reply to: