tl;dr; I'm not sure when it changed, but newer versions of nginx -- instead of ssl_protocols ...; -- your conf should be:
proxy_ssl_server_name on; proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
Source: https://stackoverflow.com/a/25330027
===
If you were like me, you were misreading the log files and seeing host=example.com. Instead of this being the host sent to the origin, this seems to mean host-as-defined-in-nginx-conf i.e. virtual host.
(Turning on error_log debug; showed that the host header was being correctly set.)
The log file should also contain an error like "sslv3 alert handshake failure".
proxy_set_header Host $host;innginx.confand seems also to be related to theserver_namedirective. I've yet to determine exactly how they interact, but I've found settingproxy_set_header Host $hostin yourlocationdirective, while also omitting theserver_nameentirely works in our case