Нашёл в рассылке по nginx: правильное проксирование https.
server {
listen 80;
listen 443 ssl;
server_name .site.com;
ssl_certificate /etc/nginx/domain.com.crt;
ssl_certificate_key /etc/nginx/domain.com.key;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_ciphers EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:EECDH+RC4:RSA+RC4:!MD5;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
...
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header HTTPS $https;
}
}
А можно проксировать через haproxy, используя протокол TCP вместо HTTP.