Jump to content

Gerando certificado CRT para o banco Itaú ( PIX e Boleto ) WebService


Leonardo

Postagens Recomendadas

Olá Devs, como estão? 

Para este post, estarei demonstrando como podemos estar realizando a ativação do WebService bancário junto ao banco Itaú. 

Precisamos realizar algumas etapas antes de estarmos ativando este processo de comunicação. Para isso, seguem as orientações. 

 

Instalações:

1 - Ter em sua máquina o OpenSLL instalado 

  • Precisamos dele para rodarmos alguns comandos para a geração do nosso   certificado.

2- Instalar o GitBash em sua máquina.

  • Estaremos utilizando este terminal, pois foi o que mais apresentou sucesso nas gerações de certificados. 

3 - Baixar a collection do postman disponibilizado pelo Itaú: https://devportal.itau.com.br/assets/certificado_dinamico_postman_fa4467d91c.zip

Com as instalações, podemos seguir para a próxima etapa.

 

Solicitar as credenciais ao banco Itaú:

Para que a nossa aplicação consiga se comunicar junto a API do banco Itaú precisamos de algumas chaves de autenticação. Para ter acesso às informações será necessário acessar os canais de suporte, combinados com o seu representante comercial Itaú.

 

Solicite ao suporte bancário os seguintes dados: 

  • ClientID : Chave utilizada para autenticar na API do Itáu
  • Token temporário: Chave que será utilizada para gerarmos um certificado digital

OBS: Caso o representante comercial disponibilize as seguintes chaves: 

  • ClientID;
  • Token temporário;
  • Chave Sessão;

Solicite que seja realizada a descriptografia destas informações; 

Para que o banco realize a geração das credenciais, será solicitado ao titular da conta dois arquivos

  • private.pem
  • public.pem

Estes arquivos podem ser gerados utilizando o seguinte comando

openssl genpkey -out private.pem -algorithm RSA -pkeyopt rsa_keygen_bits:2048
openssl rsa -in private.pem -pubout -out public.pem

Na etapa de descriptografia, caso o representante informe que desconhece este passo, apresente a documentação abaixo na sessão: 1.2 - Decifrar credenciais https://devportal.itau.com.br/certificado-dinamico#obter-chaves

 

Como segunda opção de descriptografia realize estes passos: 

Será necessário:

  • Script para ser executado script.rar
  • Ter o JAVA instalado em sua máquina.
  • CMD para a execução do script.

Tendo todos os itens instalados,  execute o seu CMD dentro da pasta onde se encontra o script com o comando

java -cp . Criptografia

Ao executar, será solicitado os seguintes dados

  • ClientId: <ClientId presente no e-mail>
  • Token temporário: <Token temporário presente no e-mail>
  • Chave sessão: <Chave sessão presente no e-mail>
  • Caminho absoluto da chave privada: <C:/Users/.../.../private.pem> (obtida através do procedimento de geração de par de chaves (public.pem e private.pem)>

finalizando o script será apresentados o ClientID e o Token Temporário 

Ao solicitar, será encaminhado no e-mail contendo os seguintes dados

Processo de Decriptografia
Client id decifrada com a chave de sessao AES:
[e26f2f89-0ead-4ca6-8bc3-dd44b4ab3cc7]

Token decifrado com a chave de sessao AES:
[eyJraWQiOiJhZTYxYWIxZi0yNTRhLTQ5ZWQtODMzNC05ZDJlN2E0MzZiNGQuaG9tLmdlbi4xNTk3NjAwMzM2OTkyLmp3dCIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiJlMjZmMmY4OS0wZWFkLTRjYTYtOG
JjMy1kZDQ0YjRhYjNjYzciLCJhdXQiOiJNQVIiLCJ2ZXIiOiJ2MS4wIiwiaXNzIjoiaHR0cHM6XC9cL29wZW5pZC5pdGF1LmNvbS5iclwvYXBpXC9vYXV0aFwvdG9rZW4iLCJBY2Nlc3NfVG9rZW4iOiIyY
WEzZmU5NS43OGM2YjhmNS1lZWJjLTQxMzQtYmJlZS1hZDAzMjZmMTRmM2EiLCJzb3VyY2UiOiJFWFQiLCJlbnYiOiJIIiwic2l0ZSI6ImRldiIsInVzciI6Im51bGwiLCJtYmkiOiJ0cnVlIiwidXNlcl9p
ZCI6ImUyNmYyZjg5LTBlYWQtNGNhNi04YmMzLWRkNDRiNGFiM2NjNyIsInNjb3BlIjoiZXNjb3BvX2RlZmF1bHQiLCJleHAiOjE2MTg5NDIyMTIsImlhdCI6MTYxODUxMDIxMiwiZmxvdyI6IkNDIn0.ZEI
GYAUu-8-aCirhuClcp4F4qpL9L0KFh0pQJggXieUSCEasX-3I5QLvp5BkKcE2RhwvRfW2dUuiXJGaDqK_Mri6wZ8gVVdeHaP3ctwm8_4WBdHzxVPsAQKv2MAi8IWvHaFLFLUFcF7Z9-
fpTkve_8SBnnJb4L_O7SYzXgxg3zpYSCFwMr4SrBvidq2plajEbytcDXikAXyibAWr2OH5Aijq8yfIc6dbMbH2ueA1V3mft7b_eueBQlihF1PHbytVWah6RleR5He9FLbjygcZ-F-
1ygx5yTSl_DMCGn4uCYmH5IfkZa9jC9A2-t4jlIlvFZHeGVl_c2-xaWFBd_9ryQ]

Gerando um certificado CSR e KEY com o OpenSLL: 

Ótimo, se chegou até aqui, provavelmente possui as credenciais disponibilizadas pelo banco, agora precisamos gerar um certificado para que possamos ter acesso a outros dados que o banco estará disponibilizando.

  • Certificado CRT 
  • ClientSecret

Para recebermos este dados, estaremos utilizando as seguintes ferramentas;

  • GitBash
  • OpenSLL
  • Collection do Postman

Crie uma pasta para salvarmos os arquivos que serão gerados, após isso, abra o seu terminal GItBash e execute o seguinte comando: 

Para Windows:

openssl req -new -subj "//CN=CLIENTID\OU=tecnospeed\L=CIDADE\ST=ESTADO\C=BR" -out ARQUIVO_REQUEST_CERTIFICADO.csr -nodes -sha512 -newkey rsa:2048 -keyout ARQUIVO_CHAVE_PRIVADA.key

Para Ubuntu:

openssl req -new -subj "/CN=ClientID/OU=tecnospeed/L=CIDADE/ST=ESTADO/C=BR" -out ARQUIVO_REQUEST_CERTIFICADO.csr -nodes -sha512 -newkey rsa:2048 -keyout ARQUIVO_CHAVE_PRIVADA.key

Lembre-se de alterar alguns dados conforme os dados do titular da conta

  • CN = ClientID disponibilizado via e-mail
  • OU = Deixe preenchido como tecnospeed
  • L = Cidade onde se localiza a Agência do cliente
  • ESTADO = onde se localiza a Agência do cliente
  • C = País onde se localiza a Agência do cliente
  • ARQUIVO_REQUEST_CERTIFICADO.csr = Dê um nome ao seu certificado csr que será gerado
  • ARQUIVO_CHAVE_PRIVADA = Dê um nome a chave Key vinculada ao certificado

Ao executar o comando em seu terminal, temos os seguintes arquivos gerados em sua pasta

image.png

Perfeito, temos nosso certificado gerado, agora estaremos utilizando a collection do postman que baixamos no início deste post. Assim que importar, iremos acessar a pasta Ativação Certificado Dinâmico e utilizaremos o methodo POST  3 - Envio de arquivo .csr

 

No body da requisição, insira o certificado.csr em formato texto que foi gerado anteriormente.

Para ter o texto deste certificado, abra em um editor de texto de sua preferência.

Exemplo de como precisa estar na requisição para o banco

image.png

Na mesma requisição, adicione também o token temporário retornado pelo banco 

image.png

Como resposta teremos os seguintes dados 

image.png

Tendo estes dados, salve o campo Secret separado do certificado em sua pasta com a extensão .txt e o conteúdo do certificado salve com a extensão .crt

Ao realizar todos os passos, precisamos realizar a conversão para .pfx. 

Com isso, voltamos ao nosso terminal e executaremos o seguinte comando:

openssl pkcs12 -export -out certificado_convertido.pfx -inkey certificadoKey.key -in certificadoGerado.crt

OBS: como recomendação, acesse a documentação:

Nela, demonstramos como converter utilizando o Ubuntu

Após isso, siga com a nossa documentação para realizar os cadastros em nossa API:  https://atendimento.tecnospeed.com.br/hc/pt-br/articles/4413913645591-Utilizando-o-registro-via-Web-Service-Bancário-com-o-Itaú-v2

image.png

  • Curtir 6
  • Amei 1
Link to comment
Compartilhe em outros sites

Muito legal leonardo.

Santander pede um certificado parecido, mas eles falam que precisa "Não ser autoassinado" sabe me dizer se esse processo é valido também? ou se nesse caso o certificado precisaria ser assinado por um Let's Encrypt por exemplo?

  • Curtir 1
Link to comment
Compartilhe em outros sites

  • 2 weeks later...

Olá! 

Relacionado a modalidade de cobrança, não há esta necessidade de gerar um certificado, o Santander requisita um certificado A1 ( geralmente são usados nas emissões de notas fiscais ). 

Qualquer coisa, deixo esta documentação para que possa averiguar o fluxo de solicitação: https://atendimento.tecnospeed.com.br/hc/pt-br/articles/360015311773-Utilizando-o-registro-via-Web-Service-Bancário-com-o-Santander

 

Já referente a modalidade PIX,  até o presente momento não temos uma comunicação desenvolvida junto ao banco Santander. Desta forma, ainda não temos o conhecimento de como esta ocorrendo as liberações das credenciais. 

Para que possa acompanhar os bancos que estão sendo homologados, deixo esta documentação: https://docs.pix.tecnospeed.com.br/#tag/accounts

 

Espero ter auxiliado em sua dúvida. 

Forte abraço.

  • Curtir 1
Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora
×
×
  • Create New...