Histórico de mensagens sobre mtls em devs

EXIBINDO CONVERSAS RECENTES:

Texto: mtls
Canal: devs
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Não. Por isso que o mTLS seria a opção superior.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Multi-tenancy não é problema pro mTLS, pq as chamadas para todos os clientes Efí usam a mesma CA (CA privada da Efí) e mesmo CN (gn-webhook-pix), etão você pode usar a mesma configuração para todos.

No webhook vem a chave Pix, e cada chave Pix é de um client... então você já tem uma informação para diferenciar os tenants, e pode usar até mesmo a exata mesma URL para tudo. Agora, dá para adicionar um parâmetro do webhook que vc configura em cada chave Pix para ter um double check. Poderia ser por exemplo:
"https://webhookefi.zonkof.com.br/?tenant-id=xxxxxx&ignorar="

O ignorar= é pq a Efí vai adicionar um /pix no final.

Avatar discord do usuario zonkof

zonkof

Ver Respostas

Galera, minha API utiliza uma abordagem multi-tenancy, ou seja, é uma unica API que atende a vários bancos de dados, cada banco de dados (Entenda cada banco de dados, como uma empresa que contrata o meu sistema.)
Estou utilizando o cloud run do GCP para hospedar a API, e quero configurar o webhook de pix, porém vi que precisa adicionar uns certificados na configuração do nginx/apach/express etc.. e tem que fazer algo relacionado aos certificados ssl da API e tal.. porém, como está no gcp, isso ficaria dificil. Entao gostaria de utilizar a abordage do Skip-mTLS...

Como mencionei acima, minha aplicação é multi-tenancy, e existe um middleware na minha API que recebe na requisição um parametro chamado "x-tenant-id" (atualmente é um header, mas pode ser qualquer coisa que funcione kk). Então gostaria de saber como eu poderia proceder para que em todas as requisições do webhook que a EFI mandará para a minha API, tenha algum identificador para que possa fazer a orquestração de qual banco de dados realizarei as consultas aqui.. Poderiam me ajudar com isso?

Avatar discord do usuario bluepearl012

bluepearl012

Minha configuração.

const httpsOptions: ServerOptions = {
cert: fs.readFileSync(path.join(process.cwd(), 'efi', env.CERT_EFI_WEBHOOK)), // Certificado fullchain do dominio
key: fs.readFileSync(path.join(process.cwd(), 'efi', env.KEY_EFI_WEBHOOK)), // Chave privada do domínio
ca: fs.readFileSync(path.join(process.cwd(), 'efi', env.CERT_CA_EFI_WEBHOOK)), // Certificado público da Efí
minVersion: 'TLSv1.2',
requestCert: true,
rejectUnauthorized: true, //Caso precise que os demais endpoints não rejeitem requisições sem mTLS, você pode alterar para false
};

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Bom dia, @fe0068! Você realizou a configuração mtls?
Esta tentando cadastrar em qual ambiente: homologaçao ou produção?

Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

Bom dia, @weslly99, tudo bem?
1. Sim, o certificado faz referencia a conta, funcionando de forma semelhante a uma credencial.
2. Você deve ser capaz de distinguir quem esta recebendo a notificação, você pode fazer isso tendo URL distintas, usando apenas query params para distinguir, etc.
3. É importante garantir que os usuários terão acesso apenas ao que é devido à eles, ou seja, que não consigam influenciar na cobrança de outros usuários. Restrinja ao máximo os acessos aos bancos que conterão as credenciais e os certificados para evitar que outras pessoas vazem estes dados. Ao implementar o webhook Pix, utilize o mTLS e/ou HMAC para garantir que a comunicação esteja sendo de fato feita pelos servidores da Efí.

Caso tenha alguma outra dúvida basta nos perguntar para que possamos lhe auxiliar da maneira mais assertiva possível.

Avatar discord do usuario tellyscastro

tellyscastro

Ver Respostas

"Parâmetro \".headers['x-skip-mtls-checking']\", deve ser igual a um dos valores predefinidos"


Estou enviando variaveis, juntamente com o certificado em modo de homologação, mas continua a retornar o erro acima.

tentei em modo de produção tb, mas estou no mesmo erro.

Vcs podem me ajudar?
imagem enviada na mensagem pelo usuario tellyscastro

Avatar discord do usuario nauvaro

nauvaro

Ver Respostas

Boa noite. Eu tenho um site em vps com Apache, Wordpress, plugin do Efí para Woocommerce, tentando configurar o mTLS no Apache mas recebo a falha:
"nome": "webhook_invalido",
"mensagem": "A autenticação de TLS mútuo não está configurada na URL informada"
nas requisições da Api PIX. Eu li vários casos semelhantes aqui, mas não consegui chegar num resultado positivo.

Tenho
SSLEngine On
SSLCertificateFile /www/server/panel/vhost/letsencrypt/meusite.com.br/fullchain.pem
SSLCertificateKeyFile /www/server/panel/vhost/letsencrypt/meusite.com.br/privkey.pem

#Chave pública da Efí
SSLCACertificateFile /www/wwwroot/meusite.com.br/certificate-chain-prod.crt

# mTLS Efí
SSLVerifyClient require
SSLVerifyDepth 3

Alias "/pix/" "/www/wwwroot/meusite.com.br/webhook/index.php"
Alias "/pix" "/www/wwwroot/meusite.com.br/webhook/index.php"

mas as minhas páginas exibem a mensagem "O certificado de login não foi aceito ou não foi fornecido." e se eu tentar

# mTLS Efí
SSLVerifyClient none
SSLProtocol TLSv1.2


SSLVerifyClient require
SSLVerifyDepth 3


as páginas voltam ao normal, menos o caminho /webhook. Nas duas situações a falha webhook_invalido é a mesma. Deu pra perceber que não tenho um conhecimento muito aprofundado na área né? Mas tô tentando e não saio dessa etapa, alguém que já passou pelo mesmo e/ou que conhece a situação poderia me jogar uma luz?

Avatar discord do usuario marcosepetth_tth

marcosepetth_tth

Ver Respostas

mas na documentação não diz que pode ser adicionada na header um parâmetro "x-skip-mtls-checking: true"?

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O que vai contra o manual do Pix que é taxativo sobre mTLS

Avatar discord do usuario vinybergamo

vinybergamo

Ao usar mtls você precisa colocar os certificados do efi no seu servidor apacha ou nginx

Avatar discord do usuario vinybergamo

vinybergamo

Ao invés de usar mtls

Avatar discord do usuario carlosgorges

carlosgorges

Ver Respostas

quando eu faço a requisição com "x-skip-mtls-checking" como "false" eu tenho essa resposta: "{
"nome": "webhook_invalido",
"mensagem": "A autenticação de TLS mútuo não está configurada na URL informada"
}"

mas quando eu faço a requisição com "x-skip-mtls-checking" como "true" eu recebo o meu webhook como resposta (que no caso eu entendo que esse seria o resultado esperado)
mas eu gostaria de deixar o "x-skip-mtls-checking" como "false" e deixar o mTLS configurado da forma correta.