Você não pode fazer um vhost fazer HTTP e HTTPS, porque eles são vhosts separados, atendendo protocolos separados. Em vez disso, você deve colocar toda a configuração comum em um arquivo separado e incluir esse arquivo nos vhosts SSL e não SSL do domínio.
Exemplo mínimo:
# /etc/apache2/sites-available/example.com
<VirtualHost *:80>
Include /etc/apache2/domains/example.com
</VirtualHost>
<VirtualHost 192.0.2.1:443>
SSLEngine On
SSLCertificateFile /etc/ssl/example.com_crt
SSLCertificateKeyFile /etc/ssh/example.com_key
Include /etc/apache2/domains/example.com
</VirtualHost>
# /etc/apache2/domains/example.com
ServerName example.com
ServerAlias www.example.com
ServerAdmin [email protected]
DocumentRoot /home/example/public_html
ErrorLog /home/example/apache/error.log