Configure o Apache para não retornar nada para o padrão 443 VHost

1

Eu tenho vários vhosts na porta 443 e cada um desses vhosts tem a opção ServerName config e também os valores corretos de SSLCertificateFile e SSLCertificateKeyFile , que variam dependendo do vhost. Isso tudo funciona bem.

O problema é que, se alguém acessa o servidor usando um endereço que não corresponde a nenhum dos valores de ServerName , eu acho que ele usa o primeiro por padrão. Eu não quero fazer isso. Em vez disso, gostaria que retornasse nada. No momento, ele tentará carregar um dos outros vhosts na porta 443 e, como resultado, uma mensagem de erro de certificado será lançada no navegador porque o endereço no certificado não corresponde, o que faz sentido.

Isso é possível?

Para o mesmo cenário para conexões não-https na porta 80, é simples. Acabei de criar outro vhost com a opção ServerName não especificada, e isso se torna o padrão e então eu posso ter isso mostrar um 404. Quando tento exatamente a mesma coisa e criar uma entrada para a porta 443 sem a propriedade ServerName Eu não consigo iniciar o apache e é isso que está no arquivo error.log.

[error] Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] ((null):0)

Alguém sabe se o que estou tentando fazer é possível?

Por exemplo Vamos dizer no momento se eu tiver 2 vhosts na porta 443 com a configuração correta apontando para os certificados corretos, sendo um site1.com e outro site2.com. Qualquer um pode ir a qualquer um desses dois sites em seu navegador e tudo funciona bem. No entanto, se alguém acessar o site3.com (e seu registro A aponta para o mesmo ip do servidor), então o apache parece presumir que está querendo o vhost correspondente a site1.com, e serve-o, quando não o faço. t quer. Em vez disso, eu gostaria que o apache não enviasse dados para uma solicitação ao site site3.com. Como posso conseguir isso?

Obrigado!

    
por Tom Jenkinson 13.04.2014 / 12:14

1 resposta

0

Sem um certificado válido para qualquer nome de domínio que o cliente esteja tentando solicitar, a conexão HTTPS falhará com um erro de certificado. Você não tem escolha real no assunto, eles estão se conectando via HTTPS para você e você não tem um certificado aceitável para apresentar, este é um cenário em que a falha é o resultado projetado.

Acho que o seu problema pode ser que você esteja exibindo uma mistura de sites somente HTTP e HTTPS no mesmo endereço IP. Isso causará um problema se os clientes tentarem usar o HTTPS em um dos sites que estão configurados apenas para HTTP e onde você não possui um certificado válido para usar nessa conexão HTTPS.

Se, em vez disso, os sites somente HTTP forem isolados para um endereço IP no qual nenhum HTTPS esteja disponível (nem é possível conectar-se ao 443 / tcp), então, pelo menos, é evidente que o HTTPS não está disponível.

    
por 13.04.2014 / 12:31