using John's solution i get this
Apache 2 is starting ...
AH00526: Syntax error on line 53 of .../httpd-vhosts.conf:
SSLEngine not allowed here
as John said,the best way is to have 2 virtual hosts
;but my virtual host code was more than 150 lines (lots of reverse proxies) as i didn't want to have 2 of each code (and a very long config file) i ended up doing this which works:
1.Create a virtual host for non-ssl virtual host.
2.Create another virtual host and reverse proxy to the first virtual host
<VirtualHost *:443>
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "...cert.crt"
SSLCertificateKeyFile "...server.ssl.key"
... (any ssl specific config)
ProxyPreserveHost On
ProxyPass / http://localhost:80/
ProxyPassReverse http://localhost:80/ http://yourdomain.com/
</VirtualHost>
this is not at all a good or performance friendly solution but if the reason behind not wanting 2 virtual hosts is to prevent having 2 verions of all virtual host configs (which means changing 2 lines each time you want to change something) this works.