Можно ли сделать короче мой конфиг nginx для перенаправления всего на https без www?
У вас там вообще одна строка делает редирект по сути, куда уж короче.
Можно.
Все `ssl_*` вынести из сервера на уровень выше.
`ssl on` не нужен.
Получится что-то такоеssl_protocols ...
...
ssl_session...

server {
    listen 80;
    server_name example.ru;
    return 301 https://example.ru$request_uri;
}

server {
    listen 80;
    listen 443 ssl spdy;
    server_name www.example.ru;
    return 301 https://example.ru$request_uri;
}

server {
    listen 443 ssl spdy;
    server_name example.ru;
    
    root ...
    add_header ...
    location ...
}