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?