Primeiro, parece que você quer forçar o ssl para todos .. Eu cuido disso primeiro no seu bloco *: 80:
<VirtualHost *:80>
ServerName abc.com
ServerAlias www.abc.com
Redirect permanent / https://www.abc.com/
</VirtualHost>
Então faça o seu *: 443 .. No entanto, você pode facilitar e retirar o abc.com em um vhost separado:
NameVirtualHost *:80
NameVirtualHost *:443
<VirtualHost *:80>
ServerName abc.com
Redirect permanent / https://www.abc.com/
</VirtualHost>
<VirtualHost *:443>
ServerName abc.com
Redirect permanent / https://www.abc.com/
....
...
# Note you need a wildcard cert.. I assue you have one already or are using self signed.
</VirtualHost>
Ok, agora você redirecionou todo o seu abc.com para www.abc.com e pode configurar esse vhost como de costume sem todas as reescritas.
<VirtualHost *:80>
ServerName www.abc.com
Redirect permanent / https://www.abc.com/
</VirtualHost>
<VirtualHost *:443>
ServerName www.abc.com
...
....
</VirtualHost>