Задать вопрос

Lighttpd, ssl и несколько доменов?

Прошу помочь решить одну проблему.



Есть веб-сервер под управлением lighttpd и несколько сайтов, которые на нем крутятся(ip только один).

Появилась задача сделать https только для одного из этих доменов(domain1.com).



Воспользовался бесплатным сертификатом от startssl и все прекрасно работает. Но, если зайти по https на любой другой из доменов, то получим ошибку ssl_error_unrecognized_name_alert и в логах

2013-01-13 12:11:29: (network.c.96) SSL: null SSL_CTX for TLS server name domain2.ru<br>
2013-01-13 12:11:29: (connections.c.299) SSL: 1 error:1408A0E2:SSL routines:SSL3_GET_CLIENT_HELLO:clienthello tlsext<br>




Как можно включить SSL только для одного домена, не трогая остальные домены?

В конфиге lighttpd указываю:

$SERVER["socket"] == "domain1.ru:443" {<br>
               ssl.engine = "enable"<br>
               ssl.ca-file = "/etc/lighttpd/ssl.cert/ca-certs.crt"<br>
               ssl.pemfile = "/etc/lighttpd/ssl.cert/domain1.pem"<br>
               server.document-root = "/var/www/domain1.ru/htdocs"<br>
               server.name = "domain1.ru"<br>
}<br>
  • Вопрос задан
  • 4905 просмотров
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
@lubezniy
Увы, никак. Сначала устанавливается соединение по IP и идёт обмен сертификатами, и лишь потом передаётся запрос с полем Host.
Ответ написан
la0
@la0
Смотрите. Есть такая штука, называется SNI (server name indication) поддерживается всеми современными ОС (от браузера зависит, но не сильно). WinXP пролетает.
Если не поддерживается, поведение не предсказуемо (напр. nginx выдает вторую пару ключей для установления туннеля, даже если их больше двух).
Ответ написан
VBart
@VBart
Ответ — не заходить на другие домены по HTTPS. Ошибка все равно будет, вне зависимости, используется ли SNI или нет, если у вас нет сертификата на запрашиваемый домен.

Лучшее, что вы можете сделать, это редиректить пользователей на http, если те согласились принять несоответствующий сертификат. Как это сделать в лайти я не знаю. В nginx это делается просто. Подробности: nginx.org/ru/docs/http/configuring_https_servers.html
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы