I found that stunnel may be a suitable solution to add that layer in between, is it a good solution?
Não sei se o nginx tem essa funcionalidade (por exemplo, fornecer certificado de cliente ao enviar proxy ao upstream).
A solução Stunnel funciona neste caso. Você pode fornecer certificado por serviço. Configure-o em stunnel.conf
[upstream]
accept = localhost:4343
connect = upsteam.host:443
client = yes
cert = /path/to/public.cert
key = /path/to/private.key
E para configuração upstream do nginx
proxy_pass http://localhost:4343;