Eu faço exatamente isso. O gWaldo está correto, mas você não quer veicular conteúdo sobre HTTP, apenas um redirecionamento. O truque é pegar o erro http-on-an-https-port e usá-lo para devolver o erro cliente para o local correto.
server {
listen 12345;
server_name my.domain.com;
ssl on;
ssl_certificate /etc/ssl/certs/your.pem;
ssl_certificate_key /etc/ssl/private/your.key;
# If they come here using HTTP, bounce them to the correct scheme
error_page 497 https://$server_name:$server_port$request_uri;
# Or if you're on the default port 443, then this should work too
# error_page 497 https://$server_name$request_uri;
location / {
# Your config here...
}
}