Apache httpd.conf Use somente SSL para subdomínio e dê 404 para outros URLs https

1

Eu tenho uma configuração atual para o meu cliente de e-mail do site:

    NameVirtualHost *:443

    <VirtualHost *:443>
            SSLEngine on
            SSLCertificateFile /etc/pki/tls/certs/ca.crt
            SSLCertificateKeyFile /etc/pki/tls/private/ca.key
            <Directory /var/www/mailclient>
                    AllowOverride All
            </Directory>
            DocumentRoot /var/www/mailclient
            ServerName mail.*
            ServerAlias mail.*
    </VirtualHost>

Quando tento acessar https: // mail.domain1.com ou https: // mail.domain2.com, isso funciona bem.

Mas quando eu tento acessar https: // domain1.com ou https: // sub.domain1.com eu ainda vejo o cliente de webmail, mas eu não quero ver nada além de um 404 ou algo parecido. Então, como posso restringir este virtualHost apenas para um subdomínio específico?

    
por Maikel 17.05.2012 / 21:57

2 respostas

1

Configure um vhost padrão que retroceda um erro. Ele precisa estar acima do seu vhost atual para ser padrão, mas abaixo da configuração NameVirtualHost .

NameVirtualHost *:443

<VirtualHost *:443>
    ServerName default.filler.name
    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/ca.crt
    SSLCertificateKeyFile /etc/pki/tls/private/ca.key
    <Location />
        Order Allow,Deny
        Deny from all
    </Location>
</VirtualHost>

<VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/ca.crt
    SSLCertificateKeyFile /etc/pki/tls/private/ca.key
    <Directory /var/www/mailclient>
        AllowOverride All
    </Directory>
    DocumentRoot /var/www/mailclient
    ServerName mail.*
    ServerAlias mail.*
</VirtualHost>

Vai 403 em vez de 404. Perto o suficiente?

    
por 17.05.2012 / 23:21
2

O Apache servirá o vhost padrão (*) quando não encontrar o caminho certo.
Você pode usar um vhost padrão para contornar isso.

<VirtualHost _default_:443>
  RedirectMatch permanent ^/?(.*) http://mymainwebsite.com/$1
</VirtualHost>

Isso evitará que ele apareça se alguém se conectar à porta 443 com o IP ou outro subdomínio.

    
por 17.05.2012 / 22:11