Conflito entre os domínios fornecidos por SNI e HTTP

19

Eu recentemente mudei um site WordPress com uma pequena loja de um provedor de hospedagem para um servidor do meu próprio Ubuntu Server 12.04.2 LTS e Apache 2.2.22. Eu preciso de SSL para a loja. Eu configurei alguns vhosts simples em um novo IP para o servidor, um vinculado à porta 80 do IP específico e a outra ligação à porta 443. Ambos têm ServerName www.example.com e ServerAlias example.com na configuração do vhost. Eu tenho SSLStrictSNIVHostCheck off .

O site está funcionando muito lento, mas está funcionando. Estou recebendo o seguinte nos meus registros de erros.

[Error] Hostname example.com provided via SNI and hostname www.example.com provided via HTTP are different

Espero que a lentidão esteja relacionada à mensagem acima. Alguma idéia de por que isso está aparecendo e o que eu posso fazer sobre isso?

    
por flickerfly 17.12.2013 / 16:32

5 respostas

22

Veja o seu log de acesso (não o log de erros). Com a hora e a data do erro, você deve poder identificar a solicitação incorreta e descobrir o agente do usuário. No meu caso, era um bot:

"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2)"

Meu servidor responde com HTTP 400: Solicitação incorreta.

A menos que eu esteja enganado, nas negociações de TLS, o cliente envia o nome do host duas vezes: uma vez ANTES que a conexão SSL seja estabelecida no SNI (Indicação do nome do servidor) e uma vez AFTER na solicitação HTTP real. Se a incompatibilidade de nomes de servidor, isso indicaria um cliente quebrado e não deve ter nada a ver com a forma como o servidor está configurado.

Talvez eles consertem o bot um dia, enquanto isso, você provavelmente pode ignorá-lo. Eu duvido que isso possa causar lentidão no host, a menos que as solicitações cheguem a uma taxa muito alta.

    
por 28.01.2015 / 00:14
9

Talvez esse erro seja evocado intencionalmente por alguns clientes para testar as vulnerabilidades do seu servidor. Descobri que uma solicitação de researchscan367.eecs.umich.edu acionou o erro em um servidor que mantenho. Neste caso, é uma coisa boa® que o erro ocorra.

Eu estava curioso para saber que tipos de ataques são possíveis e fiz esta pergunta no Security Stack Exchange: Que tipo de ataque é impedido pelo código de erro AH02032 do Apache2?

    
por 16.08.2016 / 14:58
1

Soa como um problema do cliente à primeira vista ... Qual navegador está causando esse problema?

A mensagem sugere que o nome do host que o cliente envia durante o ssl connectionsetup não é o mesmo que o cliente envia na solicitação HTTPS depois que a camada SSL é ativada.

    
por 17.12.2013 / 17:58
0

Verifique seu arquivo / etc / hosts para ver se você está atribuindo o nome de domínio a um endereço IP local (interno). Não se esqueça de reiniciar o daemon de cache do serviço de nomes depois de alterar o / etc / hosts serviço nscd restart

    
por 25.10.2014 / 04:39
0

No meu caso, a criação de um novo virtualhost com um sublinhado foi o problema. Eu tenho um certificado SSL curinga.

Não funcionou:

<VirtualHost *:443>
        SSLEngine on
        ServerName sub_domain.example.com
        Redirect / https://www.example.com/restofmyredirectlink
</VirtualHost>

Embora o Apache tenha sido reiniciado com sucesso, recebi erros HTTP 400. No log de erros:

[Wed Sep 05 11:28:00.349960 2018] [ssl:error] [pid 19906:tid 140392626808576] AH02031: Hostname sub_domain.example.com provided via SNI, but no hostname provided in HTTP request

Mas a remoção do sublinhado funcionou:

<VirtualHost *:443>
        SSLEngine on
        ServerName subdomain.example.com
        Redirect / https://www.example.com/restofmyredirectlink
</VirtualHost>
    
por 05.09.2018 / 11:35