I don't know if this will help but this is a simplified version of how Pl**k does it :
Code:
<IfModule mod_ssl.c>
<VirtualHost IP:443>
ServerName DOMAIN:443
ServerAlias www.DOMAIN
DocumentRoot /var/www/vhosts/DOMAIN/httpdocs
SSLEngine on
SSLVerifyClient none
SSLCertificateFile /opt/psa/var/certificates/certQI73548
<Directory /var/www/vhosts/DOMAIN/httpdocs>
SSLRequireSSL
</Directory>
</VirtualHost>
</IfModule>
<VirtualHost IP:80>
ServerName DOMAIN:80
ServerAlias www.DOMAIN
DocumentRoot /var/www/vhosts/DOMAIN/httpdocs
<IfModule mod_ssl.c>
SSLEngine off
</IfModule>
<Directory /var/www/vhosts/DOMAIN/httpdocs>
</Directory>
</VirtualHost>
I have removed anything that doesn't concern SSL to make it easier to read.
With this CP you choose if a user has SSL and if the SSL docroot is the same as the non SSL.
Just by creating the SSL virtualhost seems to be enough for SSL to work with all browsers. Users just get an error saying that the cert does not correspond to the domain and are requested to accept the cert just like with a self generated cert.
I have tested this with all of the browsers I have found and havn't had any compatibiliy problems.