De seus comentários, parece que você está usando certificados de cliente para autenticação. Em caso afirmativo, não é possível usar o proxy HTTP do Nginx e, em vez disso, você deve usar o proxy do Stream. Confira o post aqui para mais detalhes:
Como faço o roteamento de HTTPS pacotes criptografados sem descriptografá-lo?
Ao lidar com certificados de clientes, o certificado de cliente é efetivamente "consumido" durante o processo de handshake de TLS, portanto, se o Nginx aceitar primeiro a conexão SSL, o cliente apresentará o certificado ao Nginx para validação. Como seu aplicativo tomcat espera manipular o client-cert para autenticação, a conexão com proxy não tem um para usar; isso causaria uma falha no Handshake de TLS.
Usar o módulo Nginx Stream permitiria enviar o tráfego sem interrupção (preservando assim o certificado do cliente) para o processo do tomcat e permitir a autenticação adequada do certificado do cliente.
Parece que você tem apenas um processo para trabalhar, portanto, você não precisará do módulo de pré-leitura de SSL (a menos que seja necessário balanceamento de carga), provavelmente você só precisaria do seguinte:
stream {
server {
listen 443;
listen [::]:443;
proxy_pass 127.0.0.1:8443;
}
}