I'm not sure how much it can work in your situation, but newer versions (1.9.3+) of Nginx can send (encrypted) TLS packets directly to the upstream server using stream block :
stream { server { listen 443; proxy_pass backend.example.com:443; } }
Note that he cannot use the server_name directive, for example (since he essentially works at the TCP level and knows nothing about TLS) and, therefore, cannot create virtual hosts.
Fx
source share