Você precisa de um endereço IP distinto por porta + host HTTPS (ou, para ser preciso, por certificado, porque alguns certificados podem ter vários nomes Alt Sujeitos) porque o cliente não pode informar ao servidor qual host deseja (e assim certificado deve ser usado) quando ele se conecta à porta HTTPS, a menos que você esteja usando a Indicação do nome do servidor (que é uma extensão SSL / TLS que parece cada vez mais suportada).
Os hosts virtuais HTTP simples são executados em uma porta diferente (geralmente 80) que a porta usada para HTTPS (geralmente 443) e não são afetados por essa restrição.
Mesmo que você não esteja usando o SNI (caso esteja restrito a usar um certificado por porta IP +), você pode ter quantos hosts virtuais HTTP simples desejar.
Uma configuração como essa deve funcionar (especifique o número da porta no VirtualHost
):
<IfModule mod_ssl.c>
<VirtualHost www.name1.example:443>
ServerName www.name1.example
SSLEngine on
SSLCertificateFile /etc/...
SSLCertificateKeyFile /etc/...
...
</VirtualHost>
</IfModule>
# (optional)
<VirtualHost www.name1.example:80>
....
</VirtualHost>
<VirtualHost www.name2.example:80>
....
</VirtualHost>