Apache Virtual Host por nome

2

É possível substituir "*" por um nome de domínio ou subdomínio?

<VirtualHost *:443>

atualização

O problema é que recebo este erro ao inicializar o apache:

[Mon Aug 16 13:42:48 2010] [warn] _default_ VirtualHost overlap on port 443, the first has precedence

Eu tenho um virtualHost em: 443 para um subdomínio e um para um domínio principal. Quando eu removo o subdomínio, não recebo mais esse erro.

como uma nota lateral, se essa configuração puder ser mais eficiente, por favor, deixe-me saber como

domain.com config

<VirtualHost *:80>
 ServerAdmin [email protected]
 ServerName  www.domain.com
 ServerAlias domain.com
 ServerAlias xx.xxx.xxx.xx

 # Directory Root.
 DocumentRoot /sites/domain.com/www/

 # Logfiles
 ErrorLog  /sites/domain.com/logs/error.log
 CustomLog /sites/domain.com/logs/access.log combined
</VirtualHost>

<VirtualHost *:443>
 ServerName  www.domain.com

 # Directory Root.
 DocumentRoot /sites/domain.com/www/

 # Enable SSL
 SSLEngine On
 SSLCertificateFile  /sites/domain.com/ssl/star_domain_com.crt
 SSLCertificateKeyFile /sites/domain.com/ssl/ikeyless.key
 SSLCertificateChainFile /sites/domain.com/ssl/DigiCertCA.crt
 SetEnvIf User-Agent ..*MSIE.*. nokeepalive ssl-unclean-shutdown
</VirtualHost>

support.domain.com config

<VirtualHost *:80>
 ServerName support.domain.com

 # Directory Root.
 DocumentRoot /sites/support.domain.com/www/

 # Logfiles
 ErrorLog  /sites/support.domain.com/logs/error.log
 CustomLog /sites/support.domain.com/logs/access.log combined
</VirtualHost>

<VirtualHost *:443>
 ServerName support.domain.com

 # Directory Root.
 DocumentRoot /sites/support.domain.com/www/

 # Logfiles
 ErrorLog  /sites/support.domain.com/logs/error.log
 CustomLog /sites/support.domain.com/logs/access.log combined

 # Enable SSL
 SSLEngine On
 SSLCertificateFile  /sites/domain.com/ssl/star_domain_com.crt
 SSLCertificateKeyFile /sites/domain.com/ssl/domain.key
 SSLCertificateChainFile /sites/domain.com/ssl/DigiCertCA.crt
 SetEnvIf User-Agent ..*MSIE.*. nokeepalive ssl-unclean-shutdown
</VirtualHost>

Quando tento acessar o support.domain.com, ele aponta para o domínio.com e não carrega nosso site de suporte quando estiver em https, ele funciona bem em http.

    
por Webnet 16.08.2010 / 19:38

5 respostas

0

Resolvemos esse problema colocando todo o nosso SSL em um endereço IP específico e em todos os outros sites em um IP secundário. Quando fizemos isso, tudo funcionou.

    
por 02.09.2010 / 20:12
5

Sim, essa é uma parte muito importante da configuração do apache.

Por exemplo, suponha que você esteja atendendo ao domínio www.domain.tld e deseje adicionar o host virtual www.otherdomain.tld , que aponta para o host mesmo endereço IP. Então você simplesmente adiciona o seguinte ao httpd.conf:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName www.domain.tld
    ServerAlias domain.tld *.domain.tld
    DocumentRoot /www/domain
</VirtualHost>

<VirtualHost *:80>
    ServerName www.otherdomain.tld
    DocumentRoot /www/otherdomain
</VirtualHost>

Veja a documentação completa aqui: link

A resposta final: Adicione a diretiva NameVirtualHost *: 443 à sua configuração padrão.

    
por 16.08.2010 / 19:45
2

Você pode especificar um IP específico no lugar com o asterisco, desde que o IP seja especificado com NameVirtualHost. O nome é especificado em ServerName e ServerAlias .

O asterisco está correspondendo a todos os endereços IP aos quais o Apache se vincula no VirtualHost .

    
por 16.08.2010 / 19:46
0

Você já fez alguma coisa com o host virtual padrão?

Se você não fizer nenhuma customização, o apache criará um arquivo de configuração separado para algumas coisas SSL em conf.d / ssl.conf, e lá ele declara um host virtual chamado _default_:443 .

Se eu adicionar um vhost como *: 443 na minha configuração principal, ele dará o mesmo erro, e se eu remover o _default_:443 vhost no conf.d / ssl.conf, ele não o faz.

    
por 16.08.2010 / 21:16
0

Não para SSL:

You cannot use name based virtual hosts with SSL because the SSL handshake (when the browser accepts the secure Web server's certificate) occurs before the HTTP request, which identifies the appropriate name based virtual host. If you plan to use name-based virtual hosts, remember that they only work with your non-secure Web server.

Atualização:

Aparentemente, os servidores da Web mais recentes suportam isso. Verifique o link fornecido pela Warner.

    
por 16.08.2010 / 20:01