apache http e https em um único IP

4

Temos o servidor da Web do Apache 2.4 em execução em nosso ambiente com a Hospedagem Virtual baseada em nome. Há um único IP (digamos X) atribuído a esse servidor, que é NAT para ser único privado (digamos, Y).

Atualmente, minhas portas 80 e 443 são ouvidas abaixo: 0.0.0.0:80 e 0 0.0.0.0:443.
Existem muitos sites em execução na porta 80 [http] [domain1.com, domain2.com etc]
E apenas um site único rodando na porta 443 [https] [diga abc.com]

Mas, quando alguém, por engano, digitar link , ele exibe o aviso SSL e exibe o conteúdo de abc.com.

Como o SSL não funciona com hospedagem virtual baseada em nome, isso parece normal. Mas como posso restringir o usuário de não visualizar a página de abc.com quando eles digitam por engano https no site não HTTP hospedado no meu ambiente?

    
por user386232 17.11.2016 / 19:20

1 resposta

2

Faça o primeiro VirtualHost na porta 443 servir um index.html estático com explicação, ou nada (então ele retorna o erro padrão 404, que também é OK).

O VirtualHost é o primeiro quando aparece textualmente primeiro em um httpd.conf ou na ordem alfabética dos arquivos no diretório conf.d.

Os navegadores antigos que não suportam SNI terminarão aqui.

Os navegadores que especificam o nome do servidor, exceto abc.com, também acabarão aqui. O usuário ainda verá o aviso de certificado, pois o certificado que você fornecer não corresponderá ao nome do host. Então, é uma solução feia.

O segundo VirtualHost na porta 443 deve atender ao site abc.com.

Navegadores que suportam SNI (todos os navegadores modernos) acabarão aqui.

    
por 17.11.2016 / 19:39