Apache mod_ssl - você pode se recusar a responder a pedidos com nomes de host incorretos?

2

Eu tive problemas no passado com entradas de DNS antigas (pertencentes a outras pessoas) apontando para um servidor. Para evitar que o servidor responda e faça com que esses nomes de host pareçam conter cópias exatas do meu conteúdo, eu uso NameVirtualHost e faço o host virtual padrão sempre responder 503 proibido. Isso parece funcionar bem.

Agora, porém, estou pensando em como melhor conseguir a mesma coisa com o SSL.

Obviamente, se um cliente solicitasse uma página por HTTPS enquanto usava um nome de host não reconhecido, receberia avisos de SSL porque o certificado não corresponderia. No entanto, eles têm a opção de ignorar esses avisos. Gostaria de impedir que o servidor exiba o conteúdo, mesmo que o cliente opte por ignorar o aviso de SSL.

Parece que não posso usar o mesmo truque NameVirtualHost, já que os hosts virtuais baseados em nome com SSL exigem o SNI, que tem possíveis problemas de compatibilidade com clientes antigos que eu preferiria evitar. Em vez disso, tenho que usar um host virtual baseado em IP. SSLRequireSSL não parece ajudar - está feliz, independentemente de o certificado funcionar.

O Google é um exemplo disso, embora presumivelmente não esteja usando o apache. Se você editar seu / etc / hosts e apontar algum nome aleatório em um endereço IP do Google, quando você o visitar via SSL, primeiro receberá um aviso, mas se continuar assim, receberá um erro 503 - "Erro de serviço -27. Isso é tudo o que sabemos ".

Eu não tenho certeza se isso realmente importa tanto assim. O aparente site duplicado resultante da entrada de DNS perdida antes estava realmente fazendo com que nosso conteúdo aparecesse nos mecanismos de busca sob o nome de domínio errado. Nesse caso, presumivelmente (esperançosamente!) O mecanismo de pesquisa não indexará o conteúdo se o certificado SSL for inválido.

No entanto, eu gostaria de fazer isso corretamente se houver uma abordagem padrão.

    
por Tom 01.04.2013 / 19:21

1 resposta

3

Que tal redirecionar os clientes do nome de domínio errado para o seu domínio? O mod_rewrite do Apache pode ajudar a resolver este problema assim:

RewriteEngine On
RewriteCond %{HTTP_HOST} !yourdomain.com
RewriteRule ^/(.*)$ https://yourdomain.com/$1 [R=301]

Com essa configuração, todos os clientes serão redirecionados para o nome de domínio correto após ignorar o aviso de SSL. Além disso, os robôs de pesquisa indexarão seu conteúdo com o nome de domínio adequado.

    
por 01.04.2013 / 21:02