Author Image

meliodas7010

Nov 29, 2023

Testes de Webhooks e Uso do mTLS

webhooksmTLScertificadotesteslocalmentehandshakeRequisiçõesservidorambiente de homologação

boa tarde galera, estou com uma pequena dúvida sobre os webhooks do pix. Na documentação especifica que tem que haver o handshake dos ervidor e também a obrigatoriedade de uso de certificado por parte dele.
Sobre o mTLS:
Isso quer dizer que não consigo fazer os testes de webhooks localmente? Ou estou me confundindo?

Respostas (11):
Avatar discord do usuario manbomb

manbomb

30/11/2023

para conseguir testar estes webhooks localmente eu tive que utilizar o meu cliente http (Insomnia), acredito que seja o único jeito, aí eu mesmo criava os payloads como se fosse a Efi fazendo. Mas realmente penei um pouco para conseguir testar.

Avatar discord do usuario guilherme_efi

guilherme_efi

30/11/2023

@manbomb, bom dia!
Você pode usar o sitem https://webhook.site/ como URL de webhook para fazer as simulações também. Para isso você deve registrá-lo com o x-skip-mtls-checking = true

Avatar discord do usuario manbomb

manbomb

30/11/2023

ótimo saber disso tbm hein, muito obrigado @guilherme_efi

Avatar discord do usuario meliodas7010

meliodas7010

30/11/2023

Interessante. O que me restou de dúvida agora já que não consigo testar, é a parte das duas requisições e como verificar o certificado da EFI do meu lado, para que a primeira requisição seja recusada

Avatar discord do usuario rubenskuhl

rubenskuhl

30/11/2023

Isso o webhook.site não faz. Por isso esse tipo de coisa só é recomendada para uso em homologação.

Avatar discord do usuario guilherme_efi

guilherme_efi

30/11/2023

Nesse site, como é pra teste, você vai usar o atributo x-skip-mtls-checking = true no registro do webhook para ignorar essa validação do mTLS.

Avatar discord do usuario meliodas7010

meliodas7010

30/11/2023

isso eu entendi, eu queria mesmo saber como funciona a requisição real partindo da efi. Como seria feita a verificação de certificado do meu lado?

Avatar discord do usuario rubenskuhl

rubenskuhl

30/11/2023

Você coloca a CA privada da Efí como autorizada para fazer as requisições e exige um client-certificate dessa CA, no mínimo. E o melhor é checar também o CN da requisição de que ele é gn-webhook.

Avatar discord do usuario guilherme_efi

guilherme_efi

30/11/2023

A forma de como é feita a validação pode variar de cada servidor, onde é configurado a CA (chave pública) para o hand-shake.
Segue um vídeo exemplificando a configuração do mTLS em servidor Apache:
https://youtu.be/hdyUHzNwVLY?list=PLRqvcUTH2VsWufBmzOdTVeLEOTGrPNoiu

Avatar discord do usuario meliodas7010

meliodas7010

30/11/2023

muito obrigado meu amigo. Você tem algum exemplo de configuração para nginx?

Avatar discord do usuario guilherme_efi

guilherme_efi

30/11/2023