Eu aconselharia contra isso usando um redirecionamento do iptables. O motivo é que, quando alguém navega em seu site usando HTTP, o navegador não espera um handshake de sessão SSL. pode funcionar, mas definitivamente não é garantido.
Em vez disso, eu teria uma instância separada do Apache (ou um VirtualHost) que escuta na porta 80. Essa instância do apache / VH deve ser configurada para somente emitir um redirecionamento para o site habilitado para SSL assim:
RedirectMatch /(.*) https://www.example.com/$1
Dessa forma, o navegador entenderá que está sendo enviado para um site SSL e não haverá problemas com a negociação do SSL.