Bem, desde que o usuário Jure1873 não escreveu uma resposta, eu não posso dar a ele o merecido crédito. Aqui está sua solução:
what if you replace
<VirtualHost mail.craimer.org:443>
with<virtualhost *:443>
?
E essa foi a solução. Acontece que (no momento em que escrevo) httpd
não pode suportar múltiplos hosts virtuais para HTTPS, então qualquer conexão com 443 deve ser direcionada para um único host. Então, eu acho que httpd
estava rejeitando silenciosamente a configuração que tentava executar um host virtual para HTTPS.
Ah, e não critique o apache por esse "recurso ausente". Não é culpa deles! O protocolo HTTPS não suporta hosts virtuais.
Explicação entediante:
Você vê, quando você se conecta à porta 443 e inicia uma sessão HTTPS, tudo o que está acontecendo é a negociação de segurança. HTTPS é tudo sobre a criação de um túnel seguro entre dois pontos e não tem nada a ver com HTTP. Somente quando o túnel estiver configurado, os dados serão transmitidos. Esses dados são o fluxo HTTP.
Isso significa que a diretiva Host:
(que faz parte do HTTP, não HTTPS) só será enviada após o túnel seguro ter sido construído. É o cabeçalho Host:
que informa ao servidor HTTP qual host virtual está sendo acessado. Mas no HTTPS, nós obtemos essa informação tarde demais: ela chega depois que precisamos escolher as chaves de criptografia.
Conclusão: HTTPS não pode escolher chaves de criptografia com base no nome de host HTTP .