Como configurar o SSL para um domínio de vários virtualhosts

1

Eu tenho um servidor Apache2 com vários hosts virtuais. Um dos domínios agora quer o SSL para que eles possam fazer o trabalho de pagamento com o Stripe.

Eu tenho um IP separado para esse domínio (domínio1) que é o IP principal do servidor. (servidor principal 99.99.99.88, IP separado 99.99.99.99)

Antes de cortar tudo, estou tentando fazer com que ele funcione na porta 80 (não-SSL) para que eu saiba que minhas Virts estão funcionando.

Quando eu vou para o IP (99.99.99.99) ele resolve para o domínio2, que é o domínio padrão para o servidor, não para o domínio1.

O comando Listen no httpd.conf é Listen 80

Aqui está o código relevante para o meu vhosts.conf

NameVirtualHost *:80

NameVirtualHost 99.99.99.99:80

<VirtualHost 99.99.99.99:80>
    ServerName domain1.com
    DocumentRoot /var/www/vhosts/domain1.com/httpdocs
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /var/www/vhosts/domain2.com/html
    ServerName www.domain2.com
</VirtualHost>

<VirtualHost *:80>
    ServerName portal.domain2.com
    DocumentRoot /var/www/vhosts/domain2.com/portal/public
</VirtualHost>

<VirtualHost *:80>
    ServerName demo.domain2.com
    DocumentRoot /var/www/vhosts/domain2.com/demo/public
</VirtualHost>

<VirtualHost *:80>
    ServerName domain3.info
    DocumentRoot /var/www/vhosts/domain3.info/html
</VirtualHost>

<VirtualHost *:80>
    ServerName domain1.com
    DocumentRoot /var/www/vhosts/domain1.com/httpdocs
</VirtualHost>

O que preciso fazer para que o domínio 1 seja acessado quando eu acessar o servidor usando 99.99.99.99?

    
por Doug Johnson-Cookloose 19.06.2014 / 15:03

1 resposta

2

O primeiro *: 80 registro que o httpd vê para um VirtualHost se tornará o site padrão para *: 80. Por causa disso, se você inserir qualquer nome de host que não seja uma entrada válida de Nome_do_Servidor, ele será transmitido para a entrada do domínio2.

Você pode ajudar a parar esse comportamento especificando o seu site base "verdadeiro" como o primeiro *: 80 virtualhost na sua configuração.

É recomendável segmentar sites com um endereço IP específico individualmente, por exemplo:

NameVirtualHost 99.99.99.99:80
<VirualHost 99.99.99.99:80>
  ServerName domain2.com
  ...
</VirtualHost>

Fazer o acima deve garantir que os sites com um endereço IP específico sejam atendidos a partir da entrada explícita do referido ip, em vez do padrão devido a "vitórias de configurações mais específicas".

Referência Aqui :

ServerName inheritance It is best to always explicitly list a ServerName in every name-based virtual host. If a VirtualHost doesn't specify a ServerName, a server name will be inherited from the base server configuration. If no server name was specified globally, one is detected at startup through reverse DNS resolution of the first listening address. In either case, this inherited server name will influenced name-based virtual host resolution, so it is best to always explicitly list a ServerName in every name-based virtual host.

For example, suppose that you are serving the domain www.example.com and you wish to add the virtual host other.example.com, which points at the same IP address. Then you simply add the following to httpd.conf:
<VirtualHost *:80>
    # This first-listed virtual host is also the default for *:80
    ServerName www.example.com
    ServerAlias example.com 
    DocumentRoot /www/domain
</VirtualHost>

<VirtualHost *:80>
    ServerName other.example.com
    DocumentRoot /www/otherdomain
</VirtualHost>
    
por 19.06.2014 / 15:22