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

SSL только на субдомене

Это должно быть очень просто!

Я пытаюсь включить SSL только для одного поддомена. Однако, когда я это делаю, все мои поддомены и мой основной домен в конечном итоге указывают на корень документа этого поддомена.

Чтобы было ясно, когда я указываю свой браузер, я получаю следующие корни документов:

http://domain.com       -> /var/www            [GOOD]
http://sub1.domain.com  -> /media/large/sub1   [GOOD]
http://sub2.domain.com  -> /var/www            [Strange, but doesn't bother me.  And error message would be better if possible, or a redirect to https.]
https://domain.com      -> /media/large/sub2   [BAD]
https://sub1.domain.com -> /media/large/sub2   [BAD]
https://sub2.domain.com -> /media/large/sub2   [GOOD]

Эти 2 сектора [BAD] - вот что меня действительно беспокоит. Я не хочу, чтобы люди, переходящие по этим URL-адресам, получали доступ к sub2 корень документа.

Это мое ports.conf:

NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
    NameVirtualHost *:443
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

А вот и все мои / etc / apache2 / sites-enabled

domain.com:

<VirtualHost *:80>
    ServerName domain.com
    DocumentRoot /var/www
</VirtualHost>

sub1.domain.com:

<VirtualHost *:80>
    ServerName sub1.domain.com
    DocumentRoot /media/large/sub1
</VirtualHost>

sub2.domain.com:

<VirtualHost *:443>
    ServerName sub2.domain.com:443
    DocumentRoot /media/large/sub2
    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key
</VirtualHost>

Если это имеет значение, это на сервере Ubuntu по умолчанию.

У вас есть только один VirtualHost, определенный на порту 443, поэтому любой доступ к порту 443 должен будет использовать эту конфигурацию, независимо от того, какое доменное имя они используют. Если это не то, что вы хотите, настройте конфигурации VirtualHost для других доменов и укажите их в другом месте.

То же самое в обратном порядке для вашей проблемы с http://sub2.domain.com - вы не определили VirtualHost для этого доменного имени, поэтому он использует ваш VirtualHost по умолчанию, который является первым, и поэтому он использует / var / www в качестве корневого.