LINUX.ORG.RU

named-based virtual hosting SSL


0

1

Всем привет.

Вот прочитал Name-based virtual hosting cannot be used with SSL secure servers because of the nature of the SSL protocol.(с)

Но не совсем понимаю почему. Например ситуация. У нас есть машинка. На ней к одному айпи прикручены lor1.gnome3.com и lor2.gnome3.com. (т.е. два разных сайта). Припустим, что они работают на разных портах и никакого проброса портов в конфиге апача нет.(т.е. на портах 8080 и 80).

Припустим наш браузер просит зашифрованое SSL-соединение с lor1.gnome3.com. Он дает запрос серверу, сервер дает запрос SSL-ю, и вконце концов нам отсылают открытый ключ (ну и сертификат). Мы шифруем трафик, потом отсылаем апачу на адрес lor1.gnome3.com. Апачу понимает что трафик зашифрован и редиректит его на SSL, SSL своим закрытым ключем трафик расшифровывает. И все оки.

Припустим все вышеперечисленное мы делаем с адресом lor2.gnome3.com. Вопрос, почему SSL не сможет обработать зашифрованое соединение с другого виртуального хоста? Типа потому что ССЛ может работать только на одном порту и обслуживать только один хост? Т.е. он не может выделить еще один уникальный открытый ключ для домена? Или как?

Обьясните что я не так понимаю.

★★★★★

Ответ на: комментарий от stevejobs

один открытый ключ для обеих хостов типа? но это как бы не совсем безопасно.)

я так понял что можна также запускать копии ссля на разных портах. Но в таком случае нужно будет в браузере прямо указывать порт.

ipeacocks ★★★★★
() автор топика

Есть т.н. wildcard-сертификаты, покрывающие несколько доменных имен. Сертификат *.gnome3.com будет покрывать и lor1.gnome3.com и lor2.gnome3.com. Но не будет покрывать доменные имена более глубокого уровня, например ipeacocks.lor.gnome3.com.

ef37 ★★
()

> Типа потому что ССЛ может работать только на одном порту и обслуживать только один хост?

SSL может работать на множестве портов и обслуживать множество хостов. но при одном условии: один сертификат на один порт. То есть, если много виртхостов висит на одном порту, то у них будет один общий сертификат. Для хостов на втором порту будет уже другой общий сертификат. Такое положение вещей существует из-за особенностей реализации SSL-соединений: сначала устанавливается SSL-туннель (для этого нужен сертификат), потом происходит HTTP-обмен. То есть, чтобы прочитать имя виртуального хоста, нужно установить SSL-коннект; соответственно, невозможно привязать сертификат к виртуальному хосту (ибо сначала сертификат, потом имя хоста).

В этом плане TLS выглядит намного выгоднее (сначала имя хоста, потом SSL-туннель), но не все браузеры поддерживают TLS-соединения.

Slavaz ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.