Histórico de mensagens sobre certificado em pix

EXIBINDO CONVERSAS RECENTES:

Texto: certificado
Canal: pix
Avatar discord do usuario jessica_efi

jessica_efi

Ver Respostas

Entendi.. se você ainda tiver esse certificado, ele continua funcional. Se não tiver mais, você pode gerar um novo.

Avatar discord do usuario tales4721

tales4721

Ver Respostas

sim, isso tenho, más o certificado continua funcional, o que eu recebi meses atrás ?

Avatar discord do usuario perrot.

perrot.

Ver Respostas

<@!671763456487325717> Bom dia! Estou criando os certificados para criar o webhook. No Azure, estou usando certificados gratuitos, que não podem ser importados. Vc consegue me orientar como devo proceder para usar esses certificados no webhook?

Avatar discord do usuario anoni_mato

anoni_mato

o .pem é o certificado

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

E nas chamadas posteriores você precisa passar tanto o token quanto o certificado.

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

js
const express = require("express");
const fs = require("fs");
const https = require("https");
const bodyParser = require("body-parser");
var logger = require('morgan');

const httpsOptions = {
cert: fs.readFileSync(""), // Certificado fullchain do SSL do dominio
key: fs.readFileSync("/"), // Chave privada do SSL do domínio
ca: fs.readFileSync(""), // Certificado público da Gerencianet. Baixe aqui: https://pix.gerencianet.com.br/webhooks/chain-pix-prod.crt
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(bodyParser.json());
app.use(bodyParser.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})
);

Avatar discord do usuario anoni_mato

anoni_mato

Ver Respostas

E corrigindo essa minha mensagem: eu não sou muito familiarizado com Node, mas parece que tem como, sim, validar o certificado da GN usando Node, de acordo com a documentação da GN no link abaixo (tem uma aba "Node" com código de exemplo). Mas não sei se isso é possível num ambiente controlado por terceiros como a Heroku. Em todo caso, o mtls.pix.ae permanecerá sempre gratuito. Boas almas como o <@!535222756837556244> ajudam a financiar 💟

https://dev.gerencianet.com.br/docs/api-pix-endpoints#section-exemplos-de-configura-es-de-servidor

Avatar discord do usuario anoni_mato

anoni_mato

Ver Respostas

a menos que vc configure diretamente no seu virtualhost a validação do certificado da GN, você não tem como saber lá no Node se o request veio com o certificado ou não. é aí que entra o mtls.pix.ae. ele se encarrega de rejeitar os requests sem o certificado da GN

Avatar discord do usuario anoni_mato

anoni_mato

estranho. faz o mesmo teste cadastrando https://cardapio-api.herokuapp.com/ (sem o mtls.pix.ae). você deve receber o primeiro request de confirmação - que deveria ser respondido pelo seu servidor/app com 403 por não ter o certificado da GN para vc verificar. confere se vem com o append /pix

Avatar discord do usuario anoni_mato

anoni_mato

Ver Respostas

sem certificado extra nem nada

Avatar discord do usuario anoni_mato

anoni_mato

Ver Respostas

correto, no request enviado com o certificado, vai passar pro seu servidor. o que o seu servidor responder, o mtls.pix.ae devolve pra GN

Avatar discord do usuario anoni_mato

anoni_mato

Ver Respostas

o proprio mtls.pix.ae vai responder com 403 se o certificado da GN não for validado

Avatar discord do usuario tryvin_

tryvin_

Ver Respostas

Então, eu não sei como tu fez a configuração nesse caso do servidor que responde pelo mtls.pix.ae, mas sim, você deveria responder com o 403 nesse servidor caso viesse sem certificado, e se viesse, o servidor deveria validar a CA usando o certificado que a gerencianet emitiu pra você, ai sim ele enviaria pro seu backend cardapio-api.heroku...

Avatar discord do usuario tryvin_

tryvin_

Ver Respostas

Fábio, quem tem que validar o certificado é o servidor WEB

Avatar discord do usuario inbox5372

inbox5372

Ver Respostas

Bom dia. Tudo bem com vocês?
Estou buscando uma solução alternativa para o mTLS de um backend hospedado no Heroku.
Uso o AdonisJS.
Um prefixo na webhookUrl => https://mtls.pix.ae/cardapioo-api.herokuapp.com/webhookpix
Mas não sei qual o fluxo nesse cenário. Eu imaginava que fosse assim:
1- O GN envia o primeiro request para a webhookUrl cadastrado pelo Postman, retorna com 403;
2- Faz um novo request em https://mtls.pix.ae/cardapioo-api.herokuapp.com/webhookpix junto com o certificado;
3- Ao bater no webhookUrl com o prefixo mtps.pix.ae é direcionado para a url respondida pelo meu backend;
4- Lá encontra a rota https://cardapioo-api.herokuapp.com/webhookpix POST já pronta;
5- Eu apresento ao GN a minha parte do certificado e pronto.

Mas o que acontece na verdade é => "nome": "webhook_invalido", "mensagem": "A requisição na URL informada falhou com o erro: HPE_INVALID_CONSTANT"

Alguém pode me ajudar por favor?

Avatar discord do usuario joao_efi

joao_efi

Oi <@!573337312436682752> tudo bem? 😄
Infelizmente, no momento, ainda não temos um exemplo utilizando Laravel!
Na nossa documentação você encontra mais detalhes sobre o funcionamento da nossa API: https://dev.gerencianet.com.br/docs
Temos também no nosso github, uma sdk em php que pode te ajudar no desenvolvimento: https://github.com/gerencianet/gn-api-sdk-php
No json que contém as credenciais você informa apenas o caminho do certificado!
Vale lembrar também, que em PHP deve-se utilizar o certificado em formado .pem! Os passos para converter seu certificado, você encontra no link: https://dev.gerencianet.com.br/docs/api-pix-autenticacao-e-seguranca#section-convers-o-de-certificado-p12-para-o-formato-pem

Avatar discord do usuario gabrielmoraesp

gabrielmoraesp

Blz!
Criei o certificado, mas está na formato .p12

Avatar discord do usuario gabrielmoraesp

gabrielmoraesp

Olá, pessoal.
Alguém integrou a gerencianet no laravel?
Estou tentando integrar a parte do pix e estou tendo problemas.
Não entendi a parte do certificado.

Avatar discord do usuario beto.hostoo

beto.hostoo

Ver Respostas

sim.. o certificado SSL está ok