Você não pode fazer isso em um host virtual, porque o Apache precisa saber qual deles vai falar SSL e qual não é (sidenote: nginx não tem esse problema, você pode dizer quais diretivas de escuta estão relacionadas para SSL, uma das muitas razões que eu adoro isso.
A maneira como eu gerencio isso no Apache é colocar toda a minha configuração não relacionada ao SSL em um arquivo separado e, em seguida, ter os dois vhosts configurados próximos um do outro, cada um incluindo o arquivo de configuração específico do site dentro da sub-rotina vhost assim:
<VirtualHost 192.0.2.12:80>
Include /etc/apache2/sites/example.com
</VirtualHost>
<VirtualHost 192.0.2.12:443>
SSLEngine On
# etc
Include /etc/apache2/sites/example.com
</VirtualHost>