Open jeancarlosc39 opened 3 years ago
Você precisa também: 1) Da informação de qual Common Name tem o certificado cliente que o Itaú vai usar, para comparar e rejeitar sistemas que não o autorizado 2) Checar a chave Pix para a qual está indo o Pix, para evitar acionamento indevido por outro EC também cliente do Itaú 3) Configurar o certificado que o Itaú exigir para mostrar do lado de vocês, conforme instruções deles para que eles validem que você é você mesmo. Pode ser um certificado da CA do Itaú ou um certificado de CA reconhecida, conforme o que eles especificarem.
3. Configurar o certificado que o Itaú exigir para mostrar do lado de vocês, conforme instruções deles para que eles validem que você é você mesmo. Pode ser um certificado da CA do Itaú ou um certificado de CA reconhecida, conforme o que eles especificarem.
Poderia ser um certificado autoassinado do cliente, já que ele vai enviar esse certificado para o Banco num ambiente autenticado?
3. Configurar o certificado que o Itaú exigir para mostrar do lado de vocês, conforme instruções deles para que eles validem que você é você mesmo. Pode ser um certificado da CA do Itaú ou um certificado de CA reconhecida, conforme o que eles especificarem.
Poderia ser um certificado autoassinado do cliente, já que ele vai enviar esse certificado para o Banco num ambiente autenticado?
Não, o manual de segurança do Pix veda especificamente essa possibilidade.
3. Configurar o certificado que o Itaú exigir para mostrar do lado de vocês, conforme instruções deles para que eles validem que você é você mesmo. Pode ser um certificado da CA do Itaú ou um certificado de CA reconhecida, conforme o que eles especificarem.
Poderia ser um certificado autoassinado do cliente, já que ele vai enviar esse certificado para o Banco num ambiente autenticado?
Não, o manual de segurança do Pix veda especificamente essa possibilidade.
Certo, obrigado pela resposta. Eu estava consultando o manual v3.1 e não achei essa informação lá. Essa é a última versão mesmo ou já tem alguma mais atualizada? Googlei aqui e não encontrei.
3. Configurar o certificado que o Itaú exigir para mostrar do lado de vocês, conforme instruções deles para que eles validem que você é você mesmo. Pode ser um certificado da CA do Itaú ou um certificado de CA reconhecida, conforme o que eles especificarem.
Poderia ser um certificado autoassinado do cliente, já que ele vai enviar esse certificado para o Banco num ambiente autenticado?
Não, o manual de segurança do Pix veda especificamente essa possibilidade.
Certo, obrigado pela resposta. Eu estava consultando o manual v3.1 e não achei essa informação lá. Essa é a última versão mesmo ou já tem alguma mais atualizada? Googlei aqui e não encontrei.
A última versão é a 3.2: https://www.bcb.gov.br/content/estabilidadefinanceira/cedsfn/Manual%20de%20Seguranca%20do%20PIX%20v3.2.pdf
Mas de fato isso está em outro documento: https://www.bcb.gov.br/content/estabilidadefinanceira/pix/Regulamento_Pix/II-ManualdePadroesparaIniciacaodoPix.pdf
Os certificados digitais dos clientes da API poderão ser emitidos pelo próprio PSP ou por ACs externas, conforme definido por cada PSP. Não deverão ser aceitos certificados auto-assinados pelo cliente.
Em tempo: esse é um dos motivos inclusive de Itaú e Bradesco estarem listados em #76 como não obedecendo à API padrão, em contravenção ao regulamento.
Perfeito, @rubenskuhl ! Muito obrigado pela resposta e pelas referências.
Continuando preciso alterar minha url de recebimento do webhook mas não esta funcionando a adição de uma outra URL. Estranho que faço as consultas dos webhooks cadstrados e me retorna nulo. Estou usando o Itau [webHookConsulta] => Array ( [parametros] => Array ( [inicio] => 2020-01-01T16:01:35Z [fim] => 2021-10-23T16:01:35Z [paginacao] => Array ( [paginaAtual] => 0 [itensPorPagina] => 100 [quantidadeDePaginas] => 1 [quantidadeTotalDeItens] => 0 )
)
[webhooks] => Array
(
)
[webHookConsultaStatus] => 200
)
Continuando preciso alterar minha url de recebimento do webhook mas não esta funcionando a adição de uma outra URL. Estranho que faço as consultas dos webhooks cadstrados e me retorna nulo. Estou usando o Itau [webHookConsulta] => Array ( [parametros] => Array ( [inicio] => 2020-01-01T16:01:35Z [fim] => 2021-10-23T16:01:35Z [paginacao] => Array ( [paginaAtual] => 0 [itensPorPagina] => 100 [quantidadeDePaginas] => 1 [quantidadeTotalDeItens] => 0 )
) [webhooks] => Array ( ) [webHookConsultaStatus] => 200 )
Ao que eu lembre é apenas uma URL por chave mesmo. E a consulta do Itaú está bugada, eles precisam consertar. (Junto com as demais falhas e discrepâncias do padrão...)
Estava tentando cadastrar mas vi que não funciona mesmo.
Em tempo: esse é um dos motivos inclusive de Itaú e Bradesco estarem listados em #76 como não obedecendo à API padrão, em contravenção ao regulamento.
Obrigado pelo reporte @rubenskuhl. Vou acionar o DECEM para averiguar a situação.
Pessoal vi que essa parte de implementação do webhook itau pela documentação ficou muito em aberto . Eles fornecem o certificado https://developer.itau.com.br/docs/ca-cert.zip, mas não foram muito especificos em como implementar. Alguém conseguiu implementar 100%, recebendo as notificações de cobrança e quando elas foram concluidas?
@NatalicioNasciment eu não conheço a solução do Itaú (sou da TI do Banco do Brasil), mas imagino que você vá configurar a URL do seu webhook fazendo uma chamada PUT na API do PIX passando a URL do webhook para a chave PIX correspondente, seguindo essa spec: https://openpix.com.br/api/API-PIX-2-0-0.html#tag/Webhook/paths/~1webhook/put
E o endpoint correspondente a essa URL que você vai enviar deve estar configurado para receber requisições via mTLS (nesse caso como server). Algumas referências/recursos que podem ajudar:
Olá pessoal, realmente a documentação da api do PIx ITAÚ não é muito clara. Fiz a mesma implementação do webhook ApiGateway + lambda com a api do gerencia Net. E funcionou. No caso da API do gerencia Net eles disponibilizam uma chave .crt
Na doc do ITAÚ eles disponibilizam duas nesse zip https://developer.itau.com.br/docs/ca-cert.zip
Vcs sabem qual adiciona no S3.? Ou como configura no API Gateway essas duas chaves. Fiz as configurações mas não recebo o callbak do WebHook
Nós implementamos mTLS webhook itau com sucesso, nunca tivemos problemas. Transacionamos e recebemos callback.
basta instalar a CA na cabeça do seu gateway e validar o certificado usado na requisição. dai pra frente se falhar é falha na sua aplicação. não tem segredo.
edit: não adianta achar que com LB L7 vai funcionar. não funciona. tem que ser L4.
@NatalicioNasciment, você conseguiu configurar (itau)?
@EvertonSA, essa é minha atual configuração no httpd:
<VirtualHost xxx.xx.xx.xxx:443>
Header set Access-Control-Allow-Origin *
Header set Access-Control-Allow-Methods POST,GET,DELETE,PUT,OPTIONS
Header set Access-Control-Allow-Headers X-Authorization,X-Requested-With
SSLEngine on
SSLCertificateFile /home/user/itau-cert/cert.crt
SSLCertificateKeyFile /home/user/itau-cert/private.key
SSLCertificateChainFile /home/user/itau-cert/ca.cer
</VirtualHost>
Se eu usar o "ca-cert.cer" e "CARoot.crt", fornecidos pelo itau, num desses caminhos, dá erro de configuração. Os arquivos configurados nos caminhos acima, foram gerados no servidor. Definitivamente, onde devo colocar estes arquivos acima? Poderia descrever com maiores detalhes como você fez?
@vandersondiniz1 tudo bem ? Esse é o problema e que a documentação não deixava tão claro (nao sei como ta hj).
Essas chaves devem ser unificadas em um arquivo único "ca-cert.cer" + "CARoot.crt" = novoarquivo.crt
Ai com esse novo arquivo deveria funcionar. Para o meu cenário funcionou
@cleytongamazup , opa, tudo ótimo! Vamos lá, vou ver o que consigo por aqui. Essa sua mensagem já será um avanço.
Opa @vandersondiniz1 no meu cenário fiz isso e funcionou. Já uso a api do PIX do Itaú em produção
@NatalicioNasciment eu não conheço a solução do Itaú (sou da TI do Banco do Brasil), mas imagino que você vá configurar a URL do seu webhook fazendo uma chamada PUT na API do PIX passando a URL do webhook para a chave PIX correspondente, seguindo essa spec: https://openpix.com.br/api/API-PIX-2-0-0.html#tag/Webhook/paths/~1webhook/put
E o endpoint correspondente a essa URL que você vai enviar deve estar configurado para receber requisições via mTLS (nesse caso como server). Algumas referências/recursos que podem ajudar:
O BB vai passar a operar com mTLS e seguir o padrão BACEN ?
Boa noite @vandersondiniz1 , conseguiu implementar? gostaria de saber o que fez com os dois arquivos baixados no itau( ca-cert.cer e ca-cert.cer)
Olá @tiagojosebogoni , boa noite! Ainda não. Prosseguimos com uma outra API semelhante aqui e deu certo. Acho que retomaremos essa questão amanhã. Quando conseguirmos solucionar, eu passo aqui para dizer a solução.
Olá alguem coseguiu implementar? @vandersondiniz1, @cleytongamazup
Olá alguem coseguiu implementar? @vandersondiniz1, @cleytongamazup
Olá Tiago, consegui sim . Como comentei mais acima , o problema no meu caso era unificar as duas chaves que eles enviaram. E criar um único PEM.
@vandersondiniz1 tudo bem ? Esse é o problema e que a documentação não deixava tão claro (nao sei como ta hj).
Essas chaves devem ser unificadas em um arquivo único "ca-cert.cer" + "CARoot.crt" = novoarquivo.crt
Ai com esse novo arquivo deveria funcionar. Para o meu cenário funcionou
@tiagojosebogoni
Olá pessoal,
Estou com problemas para conseguir fazer funcionar a chamada de webhook do Itaú para minha aplicação. Meu cenário possui o IIS 10, foi difícil encontrar um exemplo de como configurar o IIS para uso do mTLS e o único caso foi um vídeo onde é feita integração com a gerencianet, tentei aplicar o conceito no meu caso com Itaú mas sem sucesso, a chamada a minha url não acontece.
Alguém aí conseguiu com Itaú, usando o IIS?
@erichelfenstens fiz porém foi com Linux amigo. Boa sorte.
Olá pessoal,
Estou com problemas para conseguir fazer funcionar a chamada de webhook do Itaú para minha aplicação. Meu cenário possui o IIS 10, foi difícil encontrar um exemplo de como configurar o IIS para uso do mTLS e o único caso foi um vídeo onde é feita integração com a gerencianet, tentei aplicar o conceito no meu caso com Itaú mas sem sucesso, a chamada a minha url não acontece.
Alguém aí conseguiu com Itaú, usando o IIS?
Não sei se o @renatofrota testou o mtls.pix.ae com o Itaú, mas se quiser tentar:
Pra usar é muito simples: é só prefixar o seu domínio com mtls.pix.ae/. Por exemplo:
Para: https://exemplo.com.br/webhookpix
Use: https://mtls.pix.ae/exemplo.com.br/webhookpix
Obs: no ambiente de homologação, prefixe com mtls-h.pix.ae/```
Funcional apenas com a Gerencianet no momento, mas se o amigo quiser eu posso adicionar suporte ao Itaú, o que será possível gratuitamente se o certificado cliente for de uso geral, como na GN. Se o certificado for individual por cliente, o serviço de intermediação da notificação pode ser conversado, como um serviço pago.
Em ambos os casos, meu e-mail é meu usuario aqui, no gmail, ou pode usar o email divulgado no pix.ae.
Em seg, 4 de abr de 2022 19:13, Rubens Kuhl @.***> escreveu:
Olá pessoal,
Estou com problemas para conseguir fazer funcionar a chamada de webhook do Itaú para minha aplicação. Meu cenário possui o IIS 10, foi difícil encontrar um exemplo de como configurar o IIS para uso do mTLS e o único caso foi um vídeo onde é feita integração com a gerencianet, tentei aplicar o conceito no meu caso com Itaú mas sem sucesso, a chamada a minha url não acontece.
Alguém aí conseguiu com Itaú, usando o IIS?
Não sei se o @renatofrota https://github.com/renatofrota testou o mtls.pix.ae com o Itaú, mas se quiser tentar:
Pra usar é muito simples: é só prefixar o seu domínio com mtls.pix.ae/. Por exemplo:
Para: https://exemplo.com.br/webhookpix
Use: https://mtls.pix.ae/exemplo.com.br/webhookpix
Obs: no ambiente de homologação, prefixe com mtls-h.pix.ae/``` http://mtls-h.pix.ae/
— Reply to this email directly, view it on GitHub https://github.com/bacen/pix-api/issues/313#issuecomment-1088064083, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAZ2XSWRXTFHHDDJPYJA6XLVDNSQVANCNFSM4XIZUDMQ . You are receiving this because you were mentioned.Message ID: @.***>
@erichelfenstens fiz porém foi com Linux amigo. Boa sorte.
@amarborto vc usou containers? se sim qual arquitetura montou? Obrigado.
@rubenskuhl e @renatofrota muito obrigado pela ajuda. Entrarei em contato por e-mail.
Funcional apenas com a Gerencianet no momento, mas se o amigo quiser eu posso adicionar suporte ao Itaú, o que será possível gratuitamente se o certificado cliente for de uso geral, como na GN. Se o certificado for individual por cliente, o serviço de intermediação da notificação pode ser conversado, como um serviço pago. Em ambos os casos, meu e-mail é meu usuario aqui, no gmail, ou pode usar o email divulgado no pix.ae. Em seg, 4 de abr de 2022 19:13, Rubens Kuhl @.> escreveu: … Olá pessoal, Estou com problemas para conseguir fazer funcionar a chamada de webhook do Itaú para minha aplicação. Meu cenário possui o IIS 10, foi difícil encontrar um exemplo de como configurar o IIS para uso do mTLS e o único caso foi um vídeo onde é feita integração com a gerencianet, tentei aplicar o conceito no meu caso com Itaú mas sem sucesso, a chamada a minha url não acontece. Alguém aí conseguiu com Itaú, usando o IIS? Não sei se o @renatofrota https://github.com/renatofrota testou o mtls.pix.ae com o Itaú, mas se quiser tentar: Pra usar é muito simples: é só prefixar o seu domínio com mtls.pix.ae/. Por exemplo: Para: https://exemplo.com.br/webhookpix Use: https://mtls.pix.ae/exemplo.com.br/webhookpix Obs: no ambiente de homologação, prefixe com mtls-h.pix.ae/``` http://mtls-h.pix.ae/ — Reply to this email directly, view it on GitHub <#313 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAZ2XSWRXTFHHDDJPYJA6XLVDNSQVANCNFSM4XIZUDMQ . You are receiving this because you were mentioned.Message ID: @.>
@erichelfenstens não usei containers não, usei um server só pra isso com nodejs e o apache na frente pra receber as requisições
@amarborto ok obrigado.
Talvez minha maior dúvida aqui seja em saber com qual certificado o Itaú chamaria meu webhook. Eu entendo que seria o mesmo gerado por eles ( que eu uso para consumir as APIs), mas não tenho certeza, então não sei se estou fazendo alguma configuração errada para uso desse certificado no IIS ou de fato seria outro certificado, o que mudaria a forma de configuração.
Até pensei em montar um nginx pra meu webhook, mas se eu não compreender exatamente quais certificados estão envolvidos acredito que de nada adiantaria, seria apenas um trabalho extra, nesse momento.
@amarborto ok obrigado.
Talvez minha maior dúvida aqui seja em saber com qual certificado o Itaú chamaria meu webhook. Eu entendo que seria o mesmo gerado por eles ( que eu uso para consumir as APIs), mas não tenho certeza, então não sei se estou fazendo alguma configuração errada para uso desse certificado no IIS ou de fato seria outro certificado, o que mudaria a forma de configuração.
Até pensei em montar um nginx pra meu webhook, mas se eu não compreender exatamente quais certificados estão envolvidos acredito que de nada adiantaria, seria apenas um trabalho extra, nesse momento.
O que você poderia fazer é usar o s_server do OpenSSL em modo debug justamente para entender o que o Itaú está tentando apresentar como client-certificate e o que ele espera como server-certificate. Aí depois que acertar isso, configurar um nginx.
@erichelfenstens entendo, infelizmente com o IIS não serei de grande ajuda pra você, quanto ao certificado você deve usar esse que o itau fornece em https://developer.itau.com.br/docs/ca-cert.zip é só combiná-los em um único arquivo como
@vandersondiniz1 tudo bem ? Esse é o problema e que a documentação não deixava tão claro (nao sei como ta hj).
Essas chaves devem ser unificadas em um arquivo único "ca-cert.cer" + "CARoot.crt" = novoarquivo.crt
Ai com esse novo arquivo deveria funcionar. Para o meu cenário funcionou
no meu caso no apache fica assim:
<IfModule mod_ssl.c>
<VirtualHost *:443>
#.....Outras config acima
ProxyRequests on
ProxyPreserveHost on
<Location />
ProxyPass http://localhost:8000/
ProxyPassReverse http://localhost:8000/
</Location>
SSLVerifyClient none #Não requer cert fora da rota obrigatória
SSLProtocol -all +TLSv1.2 #Se a sua instalação for nova isso é IMPORTANTE pq o apache 2.4 vem com o tls 1.3 por padrão e o itau não funciona com 1.3 somente com 1.2
<Location /webhook>
SSLVerifyClient require #Sobescreve a regra anterior exigindo certificado nesta rota
SSLVerifyDepth 4 #Não é necessário mais que 3 a não ser que vc saiba oque esta fazendo
</Location>
SSLCertificateFile /caminho/do/cert/fullchain.pem
SSLCertificateKeyFile /caminho/do/cert/privkey.pem
#Certificado do ITAU fornecido em https://developer.itau.com.br/docs/ca-cert.zip
SSLCACertificateFile /caminho/do/cert/pix-itauCABundle.pem
</VirtualHost>
</IfModule>
Fiz alguns comentários caso alguém ache útil
O que você poderia fazer é usar o s_server do OpenSSL em modo debug justamente para entender o que o Itaú está tentando apresentar como client-certificate e o que ele espera como server-certificate. Aí depois que acertar isso, configurar um nginx.
@rubenskuhl estou olhando a documentação do openssl, confesso que não tenho experiência com isso, mas a ideia seria rodar o openssl para ficar escutando a porta 443, para quando o itaú tentar chamar o webhook, eu conseguir verificar os certificados?
@amarborto eu havia lido que o pessoal combinou o arquivo em um só, no caso eu combinei em um .crt (que nada mais é do que os 2 certificados dentro de um arquivo, separados por BEGIN/END CERTIFICATE), quando instalei ele continua sendo 2 certificados separados, mas como é IIS acredito nem ser esse o problema. Sobre a combinação em um arquivo .pem creio que não consiga utilizar no IIS, talvez se eu fosse para o apache ou até mesmo algum proxy reverso, aí sim.
O que você poderia fazer é usar o s_server do OpenSSL em modo debug justamente para entender o que o Itaú está tentando apresentar como client-certificate e o que ele espera como server-certificate. Aí depois que acertar isso, configurar um nginx.
@rubenskuhl estou olhando a documentação do openssl, confesso que não tenho experiência com isso, mas a ideia seria rodar o openssl para ficar escutando a porta 443, para quando o itaú tentar chamar o webhook, eu conseguir verificar os certificados?
@amarborto eu havia lido que o pessoal combinou o arquivo em um só, no caso eu combinei em um .crt (que nada mais é do que os 2 certificados dentro de um arquivo, separados por BEGIN/END CERTIFICATE), quando instalei ele continua sendo 2 certificados separados, mas como é IIS acredito nem ser esse o problema. Sobre a combinação em um arquivo .pem creio que não consiga utilizar no IIS, talvez se eu fosse para o apache ou até mesmo algum proxy reverso, aí sim.
@erichelfenstens entendo, quanto a extensão do arquivo não é relevante, pelo menos no linux não sei em windows server, mas é isso mesmo primeiro o certificado intermediário seguido do ca-root.
Caso mude para apache no linux poste aqui novamente ou entre em contato, meu email esta no perfil.
O que você poderia fazer é usar o s_server do OpenSSL em modo debug justamente para entender o que o Itaú está tentando apresentar como client-certificate e o que ele espera como server-certificate. Aí depois que acertar isso, configurar um nginx.
@rubenskuhl estou olhando a documentação do openssl, confesso que não tenho experiência com isso, mas a ideia seria rodar o openssl para ficar escutando a porta 443, para quando o itaú tentar chamar o webhook, eu conseguir verificar os certificados?
Isso mesmo.
@erichelfenstens entendo, quanto a extensão do arquivo não é relevante, pelo menos no linux não sei em windows server, mas é isso mesmo primeiro o certificado intermediário seguido do ca-root.
Caso mude para apache no linux poste aqui novamente ou entre em contato, meu email esta no perfil.
@amarborto ok, obrigado pela disposição em ajudar!
Isso mesmo.
@rubenskuhl é bom saber dessa possibilidade, no entanto, eu consegui configurar o IIS para não olhar para um certificado client em específico (OneToOneMappings) já que eu não sabia qual era, e então configurei o ManyToOneMappings com algumas Rules para olhar para algumas propriedades do certificado, como o CN do Issuer (mesmo do meu certificado que uso para consumir a API) e deu certo! Obs: os 2 certificados CA disponibilizados pelo Itaú foram instalados no servidor.
webhook funcionando no IIS! Obrigado a todos que interagiram.
Boa tarde, alguem conseguei baixar os certificados no link https://developer.itau.com.br/docs/ca-cert.zip? Parece que está quebrado!
Boa tarde, alguem conseguei baixar os certificados no link https://developer.itau.com.br/docs/ca-cert.zip? Parece que está quebrado!
@afraniollucas o Itaú mudou algumas coisas do portal do desenvolvedor, o link continua o mesmo para download aparentemente só esta quebrado mesmo, fale com o atendente de cash.
Estou lendo a documentação agora surgiu algumas duvidas. Fiz toda implementação, criei os certificado e validei. Agora sobre o webhook já passei minha URL de retorno mas não entendi esta parte. Para ativar o fluxo de autenticação via mTLS primeiramente é necessário baixar a CA (chave pública) do Itaú no seguinte link https://developer.itau.com.br/docs/ca-cert.zip. Após isso, essa CA deverá ser importada no API Gateway, servidor Proxy ou Aplicação que irá receber a requisição de Webhook. Pelo que vi eles passaram este certificado que o nosso servidor deve se comunicar com eles. Para funcionar então este webhook teria então só que instalar este certificado via servidor que vai se comunicar normalmente? Ou tenho algum outro código para implementar? Pelo que olhei o manual só aguardo o recebimento do pagamento ou devolução no webhook.
@amarborto ok obrigado.
Talvez minha maior dúvida aqui seja em saber com qual certificado o Itaú chamaria meu webhook. Eu entendo que seria o mesmo gerado por eles ( que eu uso para consumir as APIs), mas não tenho certeza, então não sei se estou fazendo alguma configuração errada para uso desse certificado no IIS ou de fato seria outro certificado, o que mudaria a forma de configuração.
Até pensei em montar um nginx pra meu webhook, mas se eu não compreender exatamente quais certificados estão envolvidos acredito que de nada adiantaria, seria apenas um trabalho extra, nesse momento.
Fala pessoal, estou com dificuldades em implementar esse webhook também, tenho um servidor com nginx configurado, alguém pode me dar uma luz sobre essa implementação dos certificados CA no nginx?
Estou lendo a documentação agora surgiu algumas duvidas. Fiz toda implementação, criei os certificado e validei. Agora sobre o webhook já passei minha URL de retorno mas não entendi esta parte. Para ativar o fluxo de autenticação via mTLS primeiramente é necessário baixar a CA (chave pública) do Itaú no seguinte link https://developer.itau.com.br/docs/ca-cert.zip. Após isso, essa CA deverá ser importada no API Gateway, servidor Proxy ou Aplicação que irá receber a requisição de Webhook. Pelo que vi eles passaram este certificado que o nosso servidor deve se comunicar com eles. Para funcionar então este webhook teria então só que instalar este certificado via servidor que vai se comunicar normalmente? Ou tenho algum outro código para implementar? Pelo que olhei o manual só aguardo o recebimento do pagamento ou devolução no webhook.
@amarborto ok obrigado. Talvez minha maior dúvida aqui seja em saber com qual certificado o Itaú chamaria meu webhook. Eu entendo que seria o mesmo gerado por eles ( que eu uso para consumir as APIs), mas não tenho certeza, então não sei se estou fazendo alguma configuração errada para uso desse certificado no IIS ou de fato seria outro certificado, o que mudaria a forma de configuração. Até pensei em montar um nginx pra meu webhook, mas se eu não compreender exatamente quais certificados estão envolvidos acredito que de nada adiantaria, seria apenas um trabalho extra, nesse momento.
Fala pessoal, estou com dificuldades em implementar esse webhook também, tenho um servidor com nginx configurado, alguém pode me dar uma luz sobre essa implementação dos certificados CA no nginx?
Você se referia especificamente ao Itaú ou a PSPs Pix em geral ? Mesmo que o PSP não seja a Gerencianet, esta tem um exemplo de configuração de diversos web servers, um deles o nginx, para o modelo adotado por eles, que pode servir de inspiração para modelos ligeiramente diferentes: https://dev.gerencianet.com.br/docs/api-pix-endpoints#section-exemplos-de-configura-es-de-servidor
Fala pessoal, estou com dificuldades em implementar esse webhook também, tenho um servidor com nginx configurado, alguém pode me dar uma luz sobre essa implementação dos certificados CA no nginx?
Opa, @giacomeli.
Para fazer a configuração do certificado no NGINX eu precisei juntar os dois certificados disponibilizados pelo Itaú.
obs: no meu caso adicionei o protocolo mTLS apenas nas rotas do webhook.
Para juntar os dois certificados:
cat "ca-cert" "CARoot (1).crt" > itau.crt
Nas configurações do NGINX, na parte do server
eu adicionei as seguintes opções:
ssl_client_certificate /caminho/do/certificado/itau.crt;
ssl_verify_client optional;
# Webhook Itaú mTLS
location /webhook/ {
if ($ssl_client_verify != SUCCESS){
return 403;
}
proxy_pass http://localhost/webhook/;
}
Para verificar se está tudo ok você pode tentar fazer um request para o seu serviço utilizando o mesmo certificado e chave que utiliza para acessar a API do Itaú. Se tudo estiver ok, você irá conseguir acessar.
Bom dia pessoal, o suporte do Itaú nos falou que para instalar o certificado no apache tomcat só precisava do CARoot.crt, mas a própria doc do tomcat fala que precisa do .key e nos arquivos do Itaú só tem o .crt e .cer. Vocês saberiam como fazer o mTls funcionar no tomcat só com o .crt? Tentamos fazer colocando o CARoot dentro de um .jks mas ele da um erro pedindo a key também.
Aqui a configuração do tomcat que tentamos usar mas não deu certo:
Não sei mais o que fazer... Desde já agradeço !
Bom dia pessoal, o suporte do Itaú nos falou que para instalar o certificado no apache tomcat só precisava do CARoot.crt, mas a própria doc do tomcat fala que precisa do .key e nos arquivos do Itaú só tem o .crt e .cer. Vocês saberiam como fazer o mTls funcionar no tomcat só com o .crt? Tentamos fazer colocando o CARoot dentro de um .jks mas ele da um erro pedindo a key também.
Aqui a configuração do tomcat que tentamos usar mas não deu certo:
Não sei mais o que fazer... Desde já agradeço !
Se é um certificado raiz não precisa do .key, pq só precisa da chave pública... mas se é um certificado individual, por exemplo o que diz que você é o correntista XYZ, aí precisa do .key. Não sei o procedimento específico do Itaú, mas o procedimento usual de certificação digital é: 1) Você gera uma chave privada (a que vai no .key), a chave pública correspondente e põe só a chave pública num .req (certificate request) 2) Você envia o certificate request para quem possa dizer que você é você (neste caso, o Itaú) 3) A autoridade certificadora devolve um .crt ou .cer (certificate) que é sua chave pública assinada pela chave da certificadora 4) Você instala o certificado seu e certificados raiz da certificadora que permitem provar toda a cadeia de certificação
#
@vandersondiniz1 tudo bem ? Esse é o problema e que a documentação não deixava tão claro (nao sei como ta hj).
Essas chaves devem ser unificadas em um arquivo único "ca-cert.cer" + "CARoot.crt" = novoarquivo.crt
Ai com esse novo arquivo deveria funcionar. Para o meu cenário funcionou
Para quem vai usar o API Gateway da AWS, isso funciona, caso ainda não esteja recebendo, verifica o endpoint que está configurado no Itaú, como está na documentação deles, eles colocam um /pix no final. Depois que eu criei esse caminho no gateway com os certificados, eu comecei a receber as chamadas.
@erichelfenstens entendo, quanto a extensão do arquivo não é relevante, pelo menos no linux não sei em windows server, mas é isso mesmo primeiro o certificado intermediário seguido do ca-root. Caso mude para apache no linux poste aqui novamente ou entre em contato, meu email esta no perfil.
@amarborto ok, obrigado pela disposição em ajudar!
Isso mesmo.
@rubenskuhl é bom saber dessa possibilidade, no entanto, eu consegui configurar o IIS para não olhar para um certificado client em específico (OneToOneMappings) já que eu não sabia qual era, e então configurei o ManyToOneMappings com algumas Rules para olhar para algumas propriedades do certificado, como o CN do Issuer (mesmo do meu certificado que uso para consumir a API) e deu certo! Obs: os 2 certificados CA disponibilizados pelo Itaú foram instalados no servidor.
webhook funcionando no IIS! Obrigado a todos que interagiram.
Olá @erichelfenstens , conseguiria me passar um exemplo de como você fez essa configuração no IIS? Estou passando pelo mesmo problema onde o webhook está registrado, porém não funciona.
Obrigado
@MuriloFPC , você apenas configurou um "/pix" no final do endpoint e funcionou? Aqui não consegui receber nada ainda deles, mesmo usando o /pix no final. Alguma outra configuração foi necessária?
@jaoassis
@MuriloFPC , você apenas configurou um "/pix" no final do endpoint e funcionou? Aqui não consegui receber nada ainda deles, mesmo usando o /pix no final. Alguma outra configuração foi necessária?
Man, consegui transacionar e receber as callbacks aqui. Também coloquei minha url com /pix e deu bom. Para o itaú, voce manda sem o /pix, porque eles pegam sua URL e concatenam lá na hora de fazer a callback.
Além disso, sobre o certificado, fiz como o pessoal falou ai acima, juntei os dois em um arquivo só em um .CRT e importar
Para importar: Linux:
/home/bdoserver/java/bin/keytool -import -trustcacerts -keystore /home/bdoserver/java/jre/lib/security/cacerts -storepass changeit -alias itau -file itau.crt
Windows: C:\bdoserver\java\bin\keytool -import -trustcacerts -keystore C:\bdoserver\java\jre\lib\security\cacerts -storepass changeit -alias itau -file itau.crt
Validando se a importacao ocorreu com sucesso: Linux:
/home/bdoserver/java/bin/keytool -import -trustcacerts -keystore /home/bdoserver/java/jre/lib/security/cacerts -storepass changeit -alias itau -file itau.crt
Windows:
keytool -v -list -alias itau -keystore C:\bdoserver\java\jre\lib\security\cacerts
Além disso, a URL precisa ser uma com HTTPS(SSL). Sobre este ponto, nao tive maiores problemas, apenas adquiri um certificado SSL e apliquei na minha aplicacao, como de costume.
Meu servidor web é um TOMCAT.
Estou lendo a documentação agora surgiu algumas duvidas. Fiz toda implementação, criei os certificado e validei. Agora sobre o webhook já passei minha URL de retorno mas não entendi esta parte. Para ativar o fluxo de autenticação via mTLS primeiramente é necessário baixar a CA (chave pública) do Itaú no seguinte link https://developer.itau.com.br/docs/ca-cert.zip. Após isso, essa CA deverá ser importada no API Gateway, servidor Proxy ou Aplicação que irá receber a requisição de Webhook. Pelo que vi eles passaram este certificado que o nosso servidor deve se comunicar com eles. Para funcionar então este webhook teria então só que instalar este certificado via servidor que vai se comunicar normalmente? Ou tenho algum outro código para implementar? Pelo que olhei o manual só aguardo o recebimento do pagamento ou devolução no webhook.