Sem o uso de SNI, você não pode ter vários certificados SSL associados a uma única combinação de endereço IP / porta.
A única solução para você é usar
- vários endereços IP, cada um ouvindo na porta 443. Vários IPs podem significar aumento de custo, dependendo de com quem você está hospedando ou
- 1 endereço IP, cada um com uma porta diferente. O lado negativo disso é que seus clientes precisarão especificar a porta na URL, o que é um pouco ruim.
Uma solicitação HTTP normal é iniciada assim:
- O navegador resolve o nome (www.example.com) para IP (10.0.0.1)
- O navegador estabelece uma conexão TCP para 10.0.0.1, porta 80
- O navegador envia uma solicitação HTTP, parte da qual inclui o cabeçalho "Host:", que será "www.example.com", neste caso.
- O Apache usa o cabeçalho do host e faz a correspondência com um host virtual baseado em nome e exibe o que estiver lá.
Por outro lado, uma solicitação HTTPS (ou seja, HTTP sobre SSL) é iniciada assim:
- O navegador resolve o nome (www.example.com) para IP (10.0.0.1)
- O navegador estabelece uma conexão TCP para 10.0.0.1, porta 443
- O navegador negocia a criptografia SSL com o servidor. O nome do site (www.example.com) é especificado no certificado, portanto, nesse estágio, ele precisa corresponder ao SSL ou, caso contrário, o navegador emitirá um aviso de que algo está errado com a conexão SSL.
- O navegador envia solicitação HTTP, etc.
O motivo pelo qual você não pode ter certificados diferentes associados a 10.0.0.1:443 é porque o Apache não teria como saber qual usar para qualquer conexão recebida.