3

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

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

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

Все детали:

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

1 ответ1

5

Apache может видеть запрошенное имя хоста, используя индикацию имени сервера TLS.

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

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>

Дополнительные (суб) домены:

<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>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .