Histórico de mensagens sobre certificado

EXIBINDO CONVERSAS RECENTES:

Texto: certificado
# pix
Avatar discord do usuario united_quail_18054

united_quail_18054

Ver Respostas

criei um novo certificado, com o domínio no campo de extensão X509v3 Subject Alternative Name ao invés de apenas no CN (Common Name), mas o erro continua o mesmo

# pix
Avatar discord do usuario united_quail_18054

united_quail_18054

Ver Respostas

boa tarde pessoal, estou tentando cadastrar uma url webhook aqui, mas estou recebendo o seguinte erro:

{
"nome": "webhook_invalido",
"mensagem": "A requisição na URL informada falhou com o erro: ERR_TLS_CERT_ALTNAME_INVALID"
}

esse erro dá a entender que o servidor da Gerencianet não está aceitando o certificado que o meu servidor está fornecendo.. no entanto, quando eu tento diagnosticar através do comando openssl s_client -connect [url] tudo funciona normalmente, com o campo CN representando exatamente o meu domínio..

alguém poderia me auxiliar nesse problema? tenho um ticket aberto também mas foi sugerido esse canal complementar

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Isso dá para testar na homologação, pq o ambiente de homol faz os mesmos dois acessos com e sem certificado.

# pix
Avatar discord do usuario ezequiel_tav

ezequiel_tav

Ver Respostas

Eu gostaria de usar o SDK do typescript pois toda minha api é node com typescript. Teria como me dar um auxílio nisso?
Creio que agora seja a questão de certificados que tá pegando

# pix
Avatar discord do usuario ezequiel_tav

ezequiel_tav

Ver Respostas

Ola pessoal. Configurei certinho a parte de certificados porém utilizando o SDK do typescript obtenho esse erro:

"message": {
"nome": "webhook_invalido",
"mensagem": "A requisição na URL informada falhou com o erro: UNABLE_TO_VERIFY_LEAF_SIGNATURE"
},

# pix
Avatar discord do usuario schoeps2724

schoeps2724

Ver Respostas

ustilizo curl_setopt_array($curl, array(
CURLOPT_URL => $vrota,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"grant_type": "client_credentials"}',
CURLOPT_SSLCERT => $config['certificado'],
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $autorizacao",
"Content-Type: application/json"
),
));

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O Heroku gera um certificado TLS automático ? Todos os acessos estão especificando https:// ?

# pix
Avatar discord do usuario renato.barbosa.

renato.barbosa.

Ver Respostas

Bom dia pessoal. Fiz a implementação seguindo seu exemplo <@!780500321994539068> mas ainda tenho o mesmo problema. Para testar eu gerei chaves locais e um certificado público que mando nas requisições via insomnia. e quando acesso rotas que não deveriam exigir o certificado, tomo erro de SSL

(Error: SSL peer certificate or SSH remote key was not OK)
Obs: utilizei requestCert: true e rejectUnauthorized: false como mencionado :(. Alguma sugestão?

# pix
Avatar discord do usuario palloma_efi

palloma_efi

Ver Respostas

Olá <@!360519039019122701> ! Boa noite. Dentro do seu arquivo config.json, você está inserindo o caminho do seu certificado(campo "pix_cert")?

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

requestCert tem que ser true, rejectUnauthorized false.

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})
);

# pix
Avatar discord do usuario renato.barbosa.

renato.barbosa.

Bom dia pessoal. Estou tentando fazer a integração pix utilizando o certificado mtls em uma das rotas no node, mas estou tomando block em todas. Teriam um exemplo de código com autenticação mtls apenas no webhook?

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O que o teste faz é uma requisição com o certificado e uma sem. E o erro está dizendo que a requisição sem o certificado funciona.

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

... dado depender do certificado da GN, talvez o pessoal da @Consultoria Técnica possa olhar os logs do lado deles e fazer testes com requisições...

# pix
Avatar discord do usuario israelbarbara.

israelbarbara.

Ver Respostas

eu utilizo um servidor ubuntu com uma aplicação em nodejs, o nginx ja esta configurado, baixei o certificado .crt para o servidor com o nginx apontando para ele. O OpenSSl que esta intalado no servidor esta na versão mais recente, para suportar o TLS 1.2

# cartões
Avatar discord do usuario palloma_efi

palloma_efi

Ver Respostas

Não... Faremos um POST para a URL informada passando o token da notificação e seu sistema deve responder consumindo a rota GET /notification/:token. Aí sim, para o consumo dessa rota é necessário estar autenticado na API. Os certificados são utilizados apenas na API Pix mesmo. 😃

# cartões
Avatar discord do usuario tiagobogoni

tiagobogoni

Ver Respostas

obrigado pela resposta.. mas então não terá nenhuma validação de certificado ou usuário ou senha da gerencia net para a url que eu passei?

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Se fosse o certificado nem resposta HTTP 400 teria.

# pix
Avatar discord do usuario George Leite

George Leite

usando o mesmo certificado no postman e mesmo formato de requisição na aplicação.

# pix
Avatar discord do usuario George Leite

George Leite

Ver Respostas

nao, ele nem conecta pelo q to vendo, será algo relacionado ao certificado?

# pix
Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

Bom dia, <@!176140065729282048>. É exatamente o que o Rubens disse, esta falha é relativa a utilizar um certificado autoassinado. Em nossa documentação deixamos como exemplo o Certbot(https://certbot.eff.org/) por ser gratuito, mas nada impede de utilizar outras entidades certificadoras caso queira, o importante é não ser autoassinado.