Como impedir que solicitações HTTPS de hosts virtuais não-ssl habilitados acessem o primeiro virtualhost habilitado para ssl (Apache-SNI)

7

Espero que o título esteja claro.

Como faço para impedir que solicitações HTTPS de hosts virtuais não habilitados para SSL acessem o primeiro host virtual habilitado para ssl (a configuração é Apache-SNI).

Por exemplo, usando minha configuração abreviada abaixo, as solicitações para https://example.com (um vhost não-ssl) estão sendo atendidas pelo Apache no vhost https://example.org ativado para ssl. Gostaria de desabilitar esse comportamento e possivelmente responder com o código de resposta HTTP apropriado (não tenho certeza do que é).

Pode até não ser possível, mas eu pensei em perguntar.

# I actually have a SNI setup, but it's not demonstrated here.
# I don't think it's relevant in this situation.

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
    ServerName example.org
</VirtualHost>

<VirtualHost *:443>
    ServerName example.org
</VirtualHost>

<VirtualHost *:80>
    ServerName example.com
</VirtualHost>

EDIT: Talvez uma regra mod_rewrite no primeiro ssl-vhost?

    
por Jeff 14.08.2013 / 18:57

2 respostas

7

Como dizem os documentos do Apache , quando nenhum ServerName corresponde ao nome do host na solicitação da web, o primeiro VirtualHost correspondente à combinação IP / porta especificada será usado.

Assim, você só precisa fornecer um host virtual padrão que não ofereça conteúdo ou conteúdo de sua escolha, e ele deve ser o primeiro analisado pelo Apache quando ele carregar sua configuração.

Se você não quiser que hosts específicos sejam acessados via https, coloque-os em um endereço IP separado, no qual você configurou o Apache e não Listen na porta 443.

    
por 14.08.2013 / 19:18
0

Eu sei, já faz um tempo ... Mas e a opção SSLStrictSNIVHostCheck . Pelo que entendi, isso resolve seu problema.

    
por 12.01.2017 / 13:06