Well its a tricky one as each domain would like its own SSL cert otherwise as you find your going to get all that crud coming out.
You can do a few things.
The easiest would be to setup a wildcard certificate, something like below added to each of your vhost definitions.
Code:
<IfModule mod_ssl.c>
SSLEngine on
SSLProxyEngine On
SSLCipherSuite ALL:!ADH:!EXPORT56:-AES256-SHA:-DHE-RSA-AES256-SHA:-DHE-DSS-AES256-SHA:RC4+RSA:+HIGH:+MEDIUM:+LOW:!SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch ^Mozilla/4\.0[678] no-gzip
</ifModule>
Another idea is to setup an apache accelerator (another instance of apache that listens on port 80 but redirects requests via mod_proxy upon the domain name given)
This method could make the accelerator deal with SSL (only the host here listening on port 80 and 443) . The data flow between accellerator and say site1.com is in clear but the client and the accelerator deal in SSL (where ssl is requested).
Something like below would do (in conjunction with the SSL definition above)
Code:
ProxyRequests Off
RewriteEngine On
RewriteRule ^/(.*) http://127.0.0.1:8080/$1 [P]
ProxyPassReverse / http://127.0.0.1:8080
ProxyPreserveHost On
Of course it gets more complex so try out the snakeoil file (you should have it if you have openssl installed, I think its openssl).
Ibbo