Настройте Apache для обслуживания нескольких субдоменов через HTTP + HTTPS

Мне разместили виртуальный сервер в ISP с 2 общедоступными адресами IPv4. Я хочу выполнить несколько субдоменов (больше чем 2) с Apache и служить им и через HTTP и через HTTPS. Сертификат SSL является подстановочным знаком один для *.mydomain.com.

Я пытался настроить Apache в Debian этот путь, но отказавший. Или мои virtualhosts не приняты, или я получаю ошибки SSL. (Я знаю, что Apache не видит имени хоста, которое требуют прежде, чем вручить сертификат, но сертификат включает все возможные субдомены),

Помогите создать httpd.conf, который работает лучше всего с расположением конфигурации Apache Debian.

Все подробности:

  • Apache, слушающий на *:80 для HTTP и *:443 для HTTPS
  • Весь NameVirtualHosts, псевдонимы и т.д. должны быть определены для обоих портов/протоколов сразу
  • mydomain.com по умолчанию и www.mydomain.com должны базироваться к/var/www
  • дополнительный NameVirtualHosts для foo.mydomain.com и bar.mydomain.com и т.д., который может быть настроен особенно, например, иметь другой DocumentRoot
3
задан 03.02.2011, 19:58

1 ответ

Apache видит имя хоста требуемый, использующий Признак Имени сервера TLS.

Однако это требует относительно недавнего веб-браузера. Например, те, которые используют Internet Explorer на Windows XP, получат сообщения несоответствия сертификата для дополнительных доменов. (К счастью пользователи WinXP/IE являются почти прекратившимися.) Статья Wikipedia имеет список и здесь является тестовой страницей, если Вы не уверены.

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www
    <Directory /var/www/>
        Options Indexes FollowSymlinks MultiViews
    </Directory>
</VirtualHost>

NameVirtualHost *:443

<VirtualHost *:443>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www
    <Directory /var/www/>
        Options Indexes FollowSymlinks MultiViews
    </Directory>

    SSLEngine on
    SSLCertificateFile /etc/ssl/private/example.com.pem
</VirtualHost>

Дополнительные (sub) домены:

<VirtualHost *:80>
    ServerName foo.example.com
    DocumentRoot /sites/foo
</VirtualHost>

<VirtualHost *:443>
    ServerName foo.example.com
    DocumentRoot /sites/foo

    SSLEngine on
    SSLCertificateFile /etc/ssl/private/foo.example.com.pem
</VirtualHost>
5
ответ дан 08.12.2019, 00:05

Теги

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