Não tenho certeza do que não está funcionando corretamente. Mas o seguinte irá funcionar:
RewriteCond %{SERVER_NAME} =mysite.com
RewriteRule ^(.*)$ https://www.mysite.com/$1 [L,R=301]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://www.mysite.com/$1
Isso pode ser concebido como um post duplicado de muitos posts similares sobre regras de reescrita no apache, mas eu acho isso particularmente bem formulado sobre o redirecionamento não-SSL, então talvez esse seja o último post que precisará ser respondido e as pessoas será capaz de encontrar aquele mais fácil!