Histórico de mensagens sobre certificado

EXIBINDO CONVERSAS RECENTES:

Texto: certificado
# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O exemplo que tem na documentação da GN é assim:

const express = require("express");
const fs = require("fs");
const https = require("https");
var logger = require('morgan');

const httpsOptions = {
cert: fs.readFileSync(""), // Certificado fullchain do dominio
key: fs.readFileSync("/"), // Chave privada do domínio
ca: fs.readFileSync(""), // Certificado público da Gerencianet
minVersion: "TLSv1.2",
requestCert: true,
rejectUnauthorized: false, //Mantenha como false para que os demais endpoints da API não rejeitem requisições sem MTLS
};

const app = express();
const httpsServer = https.createServer(httpsOptions, app);
const PORT = 443;

app.use(logger('dev')); // Comente essa linha caso não queira que seja exibido o log do servidor no seu console
app.use(express.json());
app.use(express.urlencoded({ extended: false }));

// Endpoint para configuração do webhook, você precisa cadastrar https://SEUDOMINIO.com/webhook
app.post("/webhook", (request, response) => {
// Verifica se a requisição que chegou nesse endpoint foi autorizada
if (request.socket.authorized) {
response.status(200).end();
} else {
response.status(401).end();
}
});

// Endpoind para recepção do webhook tratando o /pix
app.post("/webhook/pix", (request, response) => {
if (request.socket.authorized){
//Seu código tratando a callback
/ EXEMPLO:
var body = request.body;
filePath = __dirname + "/data.json";
fs.appendFile(filePath, JSON.stringify(body) + "\n", function (err) {
if (err) {
console.log(err);
} else {
response.status(200).end();
}
})
/
response.status(200).end();
}else{
response.status(401).end();
}
});

httpsServer.listen(PORT, () =>
console.log(Express server currently running on port ${PORT})
);
#Desenvolvido pela Consultoria Técnica da Gerencianet

# pix
Avatar discord do usuario daniel.8964

daniel.8964

Ver Respostas

e dentro do heroku tem como eu configurar manualmente o certificado ssl

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O certificado que eles precisam configurar não é o que você usa para fazer requisições, mas a CA da Gerencianet.

# pix
Avatar discord do usuario marshall0559

marshall0559

Ver Respostas

O Certificado que tenho é em .p12

# pix
Avatar discord do usuario marshall0559

marshall0559

Ver Respostas

Eu uso hospedagem compartilhada (Locaweb)
Estou tentando resolver com eles a questão do certificado, porém acho que não entenderam muito bem (pediram no mesmo formato que meus certificados de https??)
Alguém tem alguma dica de como lidar com eles ou como fazer o pedido?

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Em node você utiliza o certificado gerado através do painel da Gerencianet no formato .p12 mesmo.
No caso, esta falha ocorre quando não encontra o certificado. Tente informar o caminho absoluto do arquivo

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O certificado tem as duas seções (chave privada e certificate) e o arquivo dele tem permissão de leitura para others ?

# pix
Avatar discord do usuario daniel.8964

daniel.8964

Ver Respostas

@Deleted User client_id e client_secret ficam na sua aplicação criada na gerencianet e o certificado é o certificado também gerado no site da gerencianet

# pix
Avatar discord do usuario brunodelara

brunodelara

Ver Respostas

a forma como funciona a verificaçao de certificado. Não sei se te explicar em termos técnicos, mas já foi discutido isso aqui no grupo

# pix
Avatar discord do usuario daniel.8964

daniel.8964

Ver Respostas

a solução então seria criar um passo a passo para o cliente ensinando como preencher com o client_id, client_secret e certificado na nossa plataforma ? ou é meio anti prático?

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Ele precisa gerar client_id, client_secret e certificado, e te passar, por causa do modelo Credentials Flow. O que você sugere se chama Auth Code Flow, e este issue no GitHub do BACEN discute como isso seria:
https://github.com/bacen/pix-api/issues/83

# pix
Avatar discord do usuario joao_efi

joao_efi

Ver Respostas

Boa noite @schinnick tudo bem? 🙂
Caso siga na linha de implementar diretamente no RN + axios, seria necessário implementar dentro do app o consumo das rotas da nossa API.
Vale lembrar que para o consumo dos endpoints PIX é necessário seu par de credenciais (Client_id e Client_Secret) + o certificado Pix emitido dentro da sua própria conta Gerencianet.
Tentar, de alguma forma, embutir essas informações no app pode ser perigoso caso alguém mal intencionado venha executar engenharia reversa no app após lançado. Onde uma vez com acesso a essas credenciais + certificado o intruso consegue realizar ações na sua conta, e até transferências (caso tenha o envio de pix habilitado)
Com isso em vista, acredito que não seja a melhor abordagem de integração.

Quando a implementação do backend, no nosso github você encontra SDKs em diversas linguagens para facilitar o desenvolvimento!
Segue o link da nossa SDK em node: https://github.com/gerencianet/gn-api-sdk-node

# pix
Avatar discord do usuario eduardohr.muniz5858

eduardohr.muniz5858

Ver Respostas

Tem como abrir o certificado e colocar o conteudo dele na chamada?

# pix
Avatar discord do usuario eduardohr.muniz5858

eduardohr.muniz5858

no bubble é muito parecido com o postman porem o problema e o certificado

# pix
Avatar discord do usuario daniel.8964

daniel.8964

Eu criei uma aplicação e criei o certificado

# pix
Avatar discord do usuario prosaka

prosaka

Galera alguem consegue me ajudar ?

Ja instalei o certificado no servidor nginx, mas nada adianta
imagem enviada na mensagem pelo usuario prosaka

# pix
Avatar discord do usuario huggler6815

huggler6815

Certificado público da Gerencianet

# pix
Avatar discord do usuario huggler6815

huggler6815

Certificado fullchain do dominio

# pix
Avatar discord do usuario huggler6815

huggler6815

const httpsOptions = {
cert: fs.readFileSync(""), // Certificado fullchain do dominio
key: fs.readFileSync("/"), // Chave privada do domínio
ca: fs.readFileSync(""), // Certificado público da Gerencianet
minVersion: "TLSv1.2",
requestCert: true,
rejectUnauthorized: false, //Mantenha como false para que os demais endpoints da API não rejeitem requisições sem MTLS
};

# pix
Avatar discord do usuario huggler6815

huggler6815

A Gerencianet irá fazer 2 requisições para o seu domínio (servidor):

Primeira Requisição: Vamos certificar que seu servidor esteja exigindo uma chave pública da Gerencianet. Isso será feito ao enviar uma requisição sem certificado e seu servidor não deverá aceitar a requisição. Uma vez respondido com a recusa será enviado a 2º requisição.
Segunda Requisição: Enviaremos a notificação junto com a nossa chave pública, o seu servidor que deve conter a chave pública disponibilizada deverá realizar o "Hand-Shake" e assim a comunicação ser estabelecida.
É necessário que o seu servidor tenha a versão mínima do TLS 1.2. Mais detalhes sobre o TLS aqui

Em seu servidor você deve configurar uma rota 'POST' com uma resposta padrão como uma string "200". Deve ser inserido o nosso certificado de produção ou homologação em seu servidor, abaixo temos alguns exemplos.