O Apache pode ver o nome do host solicitado, usando Indicação do nome do servidor TLS .
No entanto, isso requer um navegador da Web relativamente recente. Por exemplo, aqueles que usam o Internet Explorer no Windows XP receberão mensagens de incompatibilidade de certificado para domínios adicionais. (Felizmente, os usuários do WinXP / IE estão quase extintos). O artigo da Wikipedia tem uma lista, e aqui está uma página de teste se você não tiver certeza.
NameVirtualHost *:80
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www
<Directory /var/www/>
Options Indexes FollowSymlinks MultiViews
</Directory>
</VirtualHost>
NameVirtualHost *:443
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www
<Directory /var/www/>
Options Indexes FollowSymlinks MultiViews
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/private/example.com.pem
</VirtualHost>
Outros (sub) domínios:
<VirtualHost *:80>
ServerName foo.example.com
DocumentRoot /sites/foo
</VirtualHost>
<VirtualHost *:443>
ServerName foo.example.com
DocumentRoot /sites/foo
SSLEngine on
SSLCertificateFile /etc/ssl/private/foo.example.com.pem
</VirtualHost>