Como desativar o acesso https a hosts virtuais específicos?


10

Tudo bem, então eu tenho um servidor Apache configurado com as seguintes diretivas:

NameVirtualHost *:80

<VirtualHost *:80>  
ServerName example1.com  
ServerAlias www.example1.com  
DocumentRoot /var/www/html
</VirtualHost>

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

<VirtualHost example1.com:443>
DocumentRoot /var/www/html
ServerName example1.com:443
SSLEngine on
...
</VirtualHosts>

Portanto, example1.com possui suporte SSL e pode ser acessado via http: // example1.com ou https: // example1.com. No entanto, isso tem o efeito colateral não intencional de mostrar https: // example1.com quando visito https: // example2.com no meu navegador. O que eu quero fazer é basicamente desabilitar https: // example2.com de alguma forma ou redirecioná-lo para http: // example2.com para que eu não receba um aviso e o site errado ao visitá-lo.

Respostas:


7

Você não poderá evitar um aviso, a menos que o exemplo1 e o exemplo2 estejam em endereços IP diferentes ou obtenha um certificado SSL cobrindo os dois nomes - uma página de erro ou redirecionamento não poderá ocorrer até que a conexão SSL seja estabelecida.

Dito isto, algo nesse sentido deve funcionar:

NameVirtualHost *:443
<VirtualHost *:443>
  ServerName example1.com
  SSLEngine on
  #...
</VirtualHost>
<VirtualHost *:443>
  ServerName example2.com
  SSLEngine on
  # same certificate config here as on example1, unless you're wanting to use TLS SNI
  # then, let's redirect the user to non-SSL
  Redirect permanent / http://example2.com/
</VirtualHost>

Obrigado! Acho que estava faltando a diretiva NameVirtualHost e o Apache achou que estava tentando fazer dois hosts virtuais entrarem em conflito. Curiosamente, o Chrome não está lançando um aviso sobre esse redirecionamento ... Mas não estou preocupado com isso, só não quero que meu site SSL apareça sob outros nomes de domínio.
— nearengine

Não é o mesmo que adicionar certificados inválidos ao fallback para não-ssl? Eu acho que você pode anexar _fake diretamente ao nome dos certificados na sua diretiva vhost.
— M3nda 01/03

0

eu não acho que você deve colocar: 443 em ServerName example1.com:443

estes devem estar configurados corretamente

<VirtualHost example1.com:443> //change example1.com to ip address is a good habit
DocumentRoot /var/www/html
ServerName example1.com
SSLEngine on
...
</VirtualHosts>

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.