Назад | Перейти на главную страницу

Apache SNI: можно ли смешивать небезопасные хосты с безопасными на одном интерфейсе?

На общем сервере у нас есть некоторые сайты, которые работают только на порте 80. Однако есть другие сайты, которые работают как на порте 80, так и на 443.

Например:

<VirtualHost *:80>
  ServerName unsecure.com
</VirtualHost>

<VirtualHost *:80>
  ServerName secure.com
  RedirectPermanent / https://secure.com
</VirtualHost>

<VirtualHost *:443>
  ServerName secure.com
</VirtualHost>

Запросы к https://unsecure.com будет представлен сертификат для secure.com. Есть ли способ избежать этого, кроме разделения интерфейсов (например, foo: 80 и bar: 443, что невозможно в этой ситуации). Многие из этих сайтов на порте 80 являются устаревшими, и настроить их на использование SSL не так просто, как мы надеялись.

Вам не нужны отдельные сетевые интерфейсы, просто отдельные IP-адреса. Сайты, которые развернуты с https, получают один IP-адрес, а сайты с http получают только другой IP-адрес. Когда сайт переводится на https, его записи адреса DNS также переносятся на другой IP-адрес.

В Apache вы измените директивы Listen, чтобы они соответствовали этим IP-адресам. Например:

Listen 198.51.100.37 80
Listen 203.0.113.252 80
Listen 203.0.113.252 443

Это единственный способ сделать это надежно.