Eu acho que a melhor implementação desse tipo de coisa é seguir o exemplo da GN para nginx, e deixar na aplicação apenas um atendedor HTTP rodando em localhost para o qual o nginx faz proxy reverso. Aí você deixa todo o atendimento de https, incluindo a parte de mTLS, por conta do nginx.