Como recusar corretamente as conexões SSL para subdomínios que não possuem um certificado

2

Atualmente estou configurando um servidor (semi-sério) com o nginx pela primeira vez. Eu tenho um par de domínios e subdomínios e quero usar o SSL tanto quanto possível para manter o tráfego de e para o meu site razoavelmente seguro. Um problema que enfrentei ultimamente é que sou incapaz de manipular corretamente solicitações SSL para subdomínios inexistentes sem recorrer a certificados curinga.

Basicamente, minha configuração é muito próxima de este um (nginx, redireciona para https, vários subdomínios, Vamos Criptografar certificados para todos os subdomínios válidos, tudo para domínios inválidos).

É realmente NotNice ™ que os usuários que interpretam erroneamente um subdomínio receberão um erro do tipo "Esta conexão não é confiável" (ou pior, dependendo do navegador). Pode minar a confiança no meu site. Por exemplo, https://www.my-domain.com funciona, mas https://ww.my-domain.com dirá ao usuário que meu site não é confiável. Como estou esperando que uma quantidade substancial de meus leitores não seja exatamente especialista em tecnologia, não posso esperar que eles entendam ou diagnostiquem isso sozinhos.

Então, o que eu quero é basicamente apenas abortar a conexão quando alguém visita um subdomínio inexistente, para que ele receba um erro de "conexão recusada", não um erro "este site é malvado, você pode estar sendo hackeado". Não apenas está mais perto da verdade (o site é confiável, não há nada lá), mas também pode ajudá-los a identificar o erro, já que está apontando que o endereço está errado e não o certificado.

Na verdade, isso já é o que faço para conexões não SSL. Eu tenho uma diretiva de servidor catchall no nginx que apenas retorna 404 para qualquer coisa que vem na porta 80 e não corresponde a um subdomínio conhecido. Então, como eu iria realmente recusar uma conexão ssl no nginx?

Eu sei que não posso usar códigos de retorno HTTP, pois neste caso não há conexão em primeiro lugar. Esse é o ponto inteiro de ssl. Eu não posso usar certificados curinga, pois eles são muito caros. Eu gostaria de evitar tocar no iptables, já que é estranho manter isso quando eu mudo os subdomínios. No entanto, se essa é a melhor solução, posso investigar isso. Há alguma entrada de DNS inteligente que possa ajudar?

    
por MadMonkey 27.05.2016 / 09:31

1 resposta

0

Desativaria o pega-tudo para domínios inválidos. Dessa forma, tentando acessar https://ww.my-domain.com em um navegador da Web resultaria em um erro menos assustador "Servidor não encontrado" com o qual o usuário estaria mais familiarizado. No caso do Firefox, é útil sugerir que o usuário,

Check the address for typing errors such as ww.example.com instead of www.example.com

Essa parece ser a melhor alternativa para não obter um certificado curinga para corresponder com todas as possibilidades configuradas pelo DNS catch-all resolução.

    
por 27.05.2016 / 10:24