Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Autenticação mTLS

Olá pessoal! Feliz 2024.

Peço desculpas pela informalidade. Preciso estabelecer uma comunicação com um webhook que exige uma camada mTLS. No entanto, já tenho uma API existente em Express.

Alguém poderia esclarecer minhas dúvidas?

  • É possível habilitar a autenticação mTLS apenas para uma rota específica, mantendo o restante da aplicação inalterado?
  • Caso não seja viável, vocês sabem se é possível criar um "orquestrador de serviços", algo que me permita direcionar para serviços diferentes com base na porta ou rota. Por exemplo:
    • Tenho o serviço A rodando em Express na porta 3001, com os certificados x, y e z.
    • Tenho o serviço B rodando em FastAPI na porta 3002, com os certificados a, b e c.
2 respostas
solução!

Olá, Gabriel! Feliz 2024 para você também!

Entendo sua preocupação e estou aqui para tentar esclarecer suas dúvidas sobre a autenticação mTLS em Express.

  1. Infelizmente, a autenticação mTLS não pode ser habilitada para uma rota específica em Express. A autenticação mTLS é um recurso que é configurado no nível do servidor e não no nível de rota. Portanto, se você habilitar a autenticação mTLS, ela será aplicada a todas as rotas na sua aplicação Express.

  2. No entanto, a ideia de um "orquestrador de serviços" é totalmente viável. Você pode usar um proxy reverso, como o Nginx ou o HAProxy, para direcionar o tráfego para serviços diferentes com base na porta ou rota. Por exemplo, você pode configurar o Nginx para direcionar todo o tráfego que chega na porta 443 para o seu serviço Express na porta 3001 e todo o tráfego que chega na porta 444 para o seu serviço FastAPI na porta 3002. Aqui está um exemplo de como você pode configurar isso no Nginx:

server {
    listen 443;
    location / {
        proxy_pass http://localhost:3001;
    }
}

server {
    listen 444;
    location / {
        proxy_pass http://localhost:3002;
    }
}

Lembrando que são só sugestões.

Lembre-se de que você precisará configurar a autenticação mTLS no Nginx (ou no HAProxy, se você escolher usá-lo) e não no Express ou FastAPI.

Espero ter ajudado e bons estudos!

Obrigado Renan !