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>

Assim, o example1.com tem suporte SSL e pode ser acessado via http: // example1.com ou https: // example1.com. No entanto, isso tem o efeito colateral indesejado de mostrar https: // example1.com quando eu visitar 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 quando eu o visitar.

    
por nearengine 23.02.2013 / 06:20

4 respostas

6

Você não poderá evitar receber um aviso, a menos que o exemplo1 e o exemplo2 estejam em endereços IP diferentes ou você receba um certificado SSL cobrindo ambos os nomes - uma página de erro ou redirecionamento não pode ocorrer até depois da conexão SSL está estabelecido.

Dito isto, algo ao longo destas linhas 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>
    
por 23.02.2013 / 10:06
0

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

estes devem ser 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>
    
por 23.02.2013 / 08:35
0

É melhor usar um IP separado para o site que requer SSL.

Alternativamente, Para adicionar o redirecionamento, você precisa de um vhost em 443 para cada domínio. Para remover o aviso SSL, você precisaria de um certificado válido para cada site.

Há uma captura segura vhosts embora. SSL em sua forma original não se preocupa com o nome do host. Ele abre uma sessão SSL em um endereço IP, estabelece uma conexão segura e, em seguida, fornece dados. O padrão / primeiro host sempre será entregue a esses clientes.

As versões mais recentes do OpenSSL e dos clientes adicionaram uma <"href=" http://en.wikipedia.org/wiki / Server_Name_Indication "> Indicação do nome do servidor " antes do handshake SSL. Isso permite hospedagem virtual SSL baseada em SNI . Portanto, isso só funcionará para novos navegadores listados na página da wiki . Os navegadores mais antigos ficarão presos.

    
por 23.02.2013 / 10:13
0

Você precisa ter a indicação do nome do servidor (SNI) para fazer isso. Por favor, consulte o link: link para detalhes.

    
por 26.02.2013 / 13:24