Обслуживать несколько доменов на одном IP-адресе и одном порту

Я хочу обслуживать несколько доменов на моем сервере CentOS. Я запускаю серверы по http. Теперь я хочу запустить эти серверы на https, используя другие сертификаты.

Я написал ssl.conf вот так.

Listen 443
<VirtualHost *:443>
  SSLEngine on
  SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
  SSLCertificateFile /etc/httpd/ssl/apache.crt
  SSLCertificateKeyFile /etc/httpd/ssl/apache.key
  SSLCertificateChainFile /etc/httpd/ssl/ca.crt
  ServerName www.example.com:443
  DocumentRoot "/var/www/html"
</VirtualHost>
<VirtualHost *:443>
  SSLEngine on
  SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
  SSLCertificateFile /etc/httpd/ssl/two.crt
  SSLCertificateKeyFile /etc/httpd/ssl/two.key
  SSLCertificateChainFile /etc/httpd/ssl/ca.crt
  ServerName two.example.com:443
  DocumentRoot /var/www/html/two
</VirtualHost>

Но это не работает. Как я могу это сделать?

Спасибо.

0
задан 7 January 2016 в 18:24
2 ответа

К сожалению, вы не можете. Причина в том, что URL-адрес в запросе клиентского браузера зашифрован вместе с остальной частью запроса, когда он достигает вашего сервера. В результате невозможно расшифровать его, не зная, для какого хоста (и какого сертификата) он был предназначен.

В прошлом я решал эту проблему двумя разными способами. Первый требует доступа к брандмауэру и более одного общедоступного IP-адреса, второй требует более причудливого SSL-сертификата.

  1. У меня работает несколько SSL-веб-сайтов, запустив их на разных портах, а затем направив SSL-трафик с разных IP-адресов на брандмауэр к разным портам на сервере. Итак - один сервер, один внутренний IP-адрес, но отдельный внешний IP-адрес для каждого сайта и использование переадресации портов на брандмауэре для изменения номера входящего порта и, таким образом, направления трафика.

  2. Другой вариант - иметь один сертификат который работает в нескольких доменах. Это известно как сертификат SAN (безопасное альтернативное имя). Geotrust, например, делает то, что вы также можете добавить до 25 доменных имен. Это более простой способ, потому что, когда приходит запрос, каждый сайт использует один и тот же сертификат, поэтому запрос можно расшифровать и обработать так, как вы описываете. Эти сертификаты намного дороже, чем базовые сертификаты SSL, но, честно говоря, они немного лучше.

0
ответ дан 5 December 2019 в 10:59

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

Возможно, вы захотите попробовать SSL с виртуальными хостами с использованием SNI но это также будет затруднительно с существующими сертификатами.

0
ответ дан 5 December 2019 в 10:59

Теги

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