Por que meus subdomínios apontam para outros subdomínios quando desabilito um site? [fechadas]

2

Eu tenho um servidor pessoal e uso muitos subdomínios nele.
Cada subdomínio tem sua própria configuração de certificado SSL exclusiva com LetsEncrypt .
Cada subdomínio tem seu próprio arquivo vhost em /etc/apache/sites-available/
Cada subdomínio tem seu próprio registro A e NS que apontam para o meu servidor.

Por algum motivo, se eu desativar um dos meus subdomínios (por exemplo, sub1.domain.com ) usando o comando a2dissite e, em seguida, tentar acessar esse site em um navegador da web, recebo um erro dizendo:

sub1.domain.com uses an invalid security certificate.
The certificate is only valid for sub2.domain.com
Error code: SSL_ERROR_BAD_CERT_DOMAIN

Eu verifiquei que os arquivos VHOST usam seus arquivos SSL apropriados. E os arquivos VHOST também possuem o nome do servidor apropriado, incluindo a parte do sub-domínio.

Se eu adicionar uma exceção ao erro acima, como é uma opção, me é apresentado outro dos meus subdomínios, mas a URL permanece a mesma que está desativada.

Por que meu servidor me aponta para um subdomínio completamente diferente quando desativo o site? Eu pensaria que seria apenas dizer que não pode ser alcançado, mas em vez disso me redireciona para outro dos meus subdomínios e não tenho certeza de como controlar isso.

    
por Frantumn 20.01.2018 / 19:22

2 respostas

2

O primeiro vhost configurado tem a prioridade mais alta e pode ser visto como o padrão ou o servidor principal. Isso significa que, se uma solicitação for recebida e não corresponder a uma das diretivas ServerName especificadas, ela será exibida primeiro.

link

No seu caso, sub1.domain.com aponta para seu servidor da Web, mas o servidor da Web não tem um vhost configurado que corresponda ao domínio. Em vez disso, o conteúdo e o certificado SSL para o domínio padrão são exibidos.

    
por 20.01.2018 / 19:32
2

Name-based virtual hosts for the best-matching set of <virtualhost>s are processed in the order they appear in the configuration. The first matching ServerName or ServerAlias is used, with no different precedence for wildcards (nor for ServerName vs. ServerAlias).

source: Servidor HTTP Apache Versão 2.4 - Usando hosts virtuais baseados em nome

Afaik não é possível alterar este processo de classificação sem recompilar.

Para mudar a ordem dos seus hosts virtuais, você poderia renomear os arquivos * .conf em /etc/apache/sites-available/ assim:

/etc/apache/sites-available/000-default.conf
/etc/apache/sites-available/100-site-one.conf
/etc/apache/sites-available/200-site-two.conf

Para o Debian (o Ubuntu deve ter uma sintaxe similar), eu recomendo mudar de digamos old-site-three.conf para 300-site-three.conf nesta ordem:

$ sudo a2dissite old-site-three.conf

$ sudo mv /etc/apache/sites-available/old-site-three.conf /etc/apache/sites-available/300-site-three.conf

$ sudo a2ensite 300-site-three.conf

$ sudo apache2ctl configtest

$ sudo systemctl restart apache2.service
    
por 20.01.2018 / 19:30