É muito simples ter um certificado diferente para um endereço IP diferente; basta colocar o material do certificado SSL dentro do virtualhosts para cada um.
Ter vários hosts virtuais em um único IP não funcionará nesse momento. Existem algumas tecnologias que podem funcionar para isso no futuro, mas a população de usuários não está executando navegadores que podem fazê-lo. O agente do usuário (navegador) estabelece uma conexão SSL e verifica a conexão SSL antes de informar ao servidor qual host está se conectando. Você realmente precisa de um IP separado para cada host virtual SSL.
<VirtualHost 1.1.1.1:443>
ServerName foo
DocumentRoot /var/www/foo
CustomLog /var/log/httpd/foo.ssl_access_log combined
ErrorLog /var/log/httpd/foo.ssl_error_log
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/pki/tls/certs/foo.crt
SSLCertificateKeyFile /etc/pki/tls/private/foo.key
</VirtualHost>
<VirtualHost 2.2.2.2:443>
ServerName bar
DocumentRoot /var/www/bar
CustomLog /var/log/httpd/bar.ssl_access_log combined
ErrorLog /var/log/httpd/bar.ssl_error_log
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/pki/tls/certs/bar.crt
SSLCertificateKeyFile /etc/pki/tls/private/bar.key
</VirtualHost>