Eu estava lutando com o mesmo problema há alguns dias e, finalmente, resolvi meu problema hoje. Meu problema é que instalei o certificado de cliente de forma inadequada no Chrome.
Eu segui estas etapas para configurar a autenticação mútua de TLS e fazer com que o cURL funcionasse inicialmente sem problemas: link
Depois, instalei o client.crt no meu navegador para autenticação do cliente. Isso foi onde eu errei. O certificado X.509 assinado em si não contém a chave privada do cliente e, portanto, o navegador não o reconhece como um meio válido de autenticação do cliente. O cliente deve conhecer a chave privada para provar que possui o certificado X.509 que está fornecendo ao servidor.
Então eu gerei o arquivo PKCS12 que combinou o certificado do cliente X.509 e a chave privada e instalei-o no navegador. Em seguida, reiniciei o navegador e o servidor nginx. Desta vez, o Chrome solicitou que eu selecionasse o perfil PKCS12 configurado e o IE o pegou automaticamente.
Aqui está um exemplo de como criar um perfil PKCS12: link
O Firefox parece estar em seu próprio mundo estranho porque não podia importar o mesmo perfil PKCS12 que funcionava com o IE e o Chrome.
Espero que isso ajude.