Histórico de mensagens sobre ssl em pix

EXIBINDO CONVERSAS RECENTES:

Texto: ssl
Canal: pix
Avatar discord do usuario thiagorobles

thiagorobles

Ver Respostas

fiz a alteração abaixo, adicionei o cert e a key que baixei no momento da criação da aplicação

private instance = axios.create({
httpsAgent: new https.Agent({
cert: Buffer.from(process.env.EFI_CERT, 'base64'),
key: Buffer.from(process.env.EFI_KEY, 'base64'),
ca: Buffer.from(process.env.CHAIN_PIX_PROD_CRT_BASE64, 'base64'),
requestCert: true,
rejectUnauthorized: true,
}),
headers: {
'x-skip-mtls-checking': true,
},
});

Agora o erro que recebo é unable to get local issuer certificate

parece ser algo relacionado ao SSL, porem está configurado corretamente pelo ACM do heroku

essas variaveis de ambiente estao configuradas pelo heroku, fiz o encode para base64, loguei o resultado do Buffer.from, e está logando os certificados corretamente (cert, key e ca)

Avatar discord do usuario thiagorobles

thiagorobles

Ver Respostas

@rubenskuhl obrigado pelo retorno, eu tentei integrar no meu Controller (uso nestjs) na minha API que está no heroku, aqui está o código:

import {
ClassSerializerInterceptor,
Controller,
HttpCode,
HttpStatus,
Logger,
Post,
Req,
UseInterceptors,
} from '@nestjs/common';
import { LoggerInterceptor } from '@src/common/logger/logger-interceptor';
import configuration from '@src/config/configuration';
import axios from 'axios';
import { Request } from 'express';
import as https from 'https';

const { httpsOptions } = configuration();
@Controller('efi-gerencianet')
@UseInterceptors(ClassSerializerInterceptor, LoggerInterceptor)
export class EfiGerencianetController {
private readonly logger = new Logger(EfiGerencianetController.name);

private instance = axios.create({
httpsAgent: new https.Agent({
ca: httpsOptions.ca,
requestCert: true,
rejectUnauthorized: true,
}),
headers: {
'x-skip-mtls-checking': true,
},
});

@Post('webhook/pix')
@HttpCode(HttpStatus.OK)
handlePixCallback(@Req() req: Request) {
const body = req.body;

this.logger.log(Received callback from Gerencianet);
this.logger.debug(body);
return body;
}

@Post('configure-webhook')
async configureWebhook() {
const url =
'https://api-pix.gerencianet.com.br/v2/webhook/4114c4e9-202c-4979-8534-34a4e5a29ad0';
const data = {
webhookUrl: '',
};

try {
const response = await this.instance.put(url, data);
this.logger.log(
Webhook configured successfully. Status code: ${response.status},
);
return response.data;
} catch (error) {
this.logger.error(Error configuring webhook: ${error.message});
throw new Error(Error configuring webhook: ${error.message});
}
}
}


subi pra produção, e ao chamar o endpoint recebo o erro: Error: Error configuring webhook: read ECONNRESET

Para SSL estou usando o heroku ACM (auto managed).


Sabem o que posso estar fazendo errado?

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Onde você tratou o location?

location /webhook {
if ($ssl_client_verify != SUCCESS) {
return 403;
}
proxy_pass /webhook;
}

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Um possível parâmetro para isso seria o header X-SSL-CERT ou X-Client-Certificate. Quem pode te dizer qual parâmetro é, se é que sua hospedagem faz isso, é a hospedagem.

Avatar discord do usuario diogo.f.m.7

diogo.f.m.7

Existe obrigatoriedade no PIX e certificado digital SSL em conjunto?
Afinal, existe a obrigatoriedade de utilização do PIX e certificado digital SSL? Essa é uma dúvida latente na mente de muitas pessoas, em especial, empresários. Entretanto, essa obrigatoriedade cabe, apenas, aos bancos e às instituições financeiras, selecionadas para operar na primeria fase do PIX, que devem zelar pela segurança nas transações de seus clientes.

Meteria:
https://blog.validcertificadora.com.br/pix-e-certificado-digital-ssl/#:~:text=Essa%20%C3%A9%20uma%20d%C3%BAvida%20latente,nas%20transa%C3%A7%C3%B5es%20de%20seus%20clientes.

Avatar discord do usuario .andregomes

.andregomes

Ver Respostas

pessoal, eu vi aqui o video sobre webhook, foi criado um servidor linux em uma vps na DigitalOcean, e lá foi configurado um servidor apache, com ssl, e tambem foi adicionado o certificado da Efi, configuração de dominio etc...

na criação do qr code, apontando para o webhook configurado, quando o cliente paga o qrcode, o servidor da Efi envia uma notificação para o webook, maravilha!

mas como que ficaria, um cenario onde eu tenho varios clientes diferentes? como eu posso aproveitar se é possivel, um só webhook e verificar qual pix foi pago, e de qual cliente?

Avatar discord do usuario cfuent.es

cfuent.es

location /webhook {
if ($ssl_client_verify != SUCCESS) {
return 403;
}
linha 61: proxy_pass /webhook;
}

Avatar discord do usuario _alexandrehenrique

_alexandrehenrique

Ver Respostas

o @rubenskuhl cara eu não acho o erro

server {
server_name webhook.redebrasilrp.com.br;

listen [::]:443 ssl ipv6only=on;
listen 443 ssl;

ssl_certificate /etc/letsencrypt/live/webhook.redebrasilrp.com.br/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/webhook.redebrasilrp.com.br/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

ssl_client_certificate /var/www/html/backend/webhookpix/public_key/chain-pix-sandbox.crt;
ssl_verify_client optional;
ssl_verify_depth 3;

location / {
proxy_pass http://127.0.0.1:8082;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache_bypass $http_upgrade;
}

location /webhook {
if ($ssl_client_verify != SUCCESS) {
return 403;
}
proxy_pass http://127.0.0.1:8082; # Alterado para a mesma configuração de proxy_pass na localização padrão
}
}

server {
if ($host = webhook.redebrasilrp.com.br) {
return 301 https://$host$request_uri;
}

server_name webhook.redebrasilrp.com.br;
listen 80;
return 404;
}

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

A configuração no servidor está junto, tanto a parte de SSL quanto a parte de proxy reverso. Não separado.

Avatar discord do usuario marcus2vinicius

marcus2vinicius

Ver Respostas

bash
$ openssl genrsa -out meu-chave-privada.pem 2048
$ openssl req -new -x509 -key meu-chave-privada.pem -out meu-certificado.pem -days 365
o certificado seria esse aqui?

eu fiz dessa forma e agora está dando esse erro
bash
marcus@marcus-laptop:~/Documents/projects/senai/api-efi/sdk-node-apis-efi/examples/pix/cob$ node pixCreateCharge.js
TypeError: Cannot read properties of undefined (reading 'response')
at /home/marcus/Documents/projects/senai/api-efi/sdk-node-apis-efi/examples/node_modules/sdk-node-apis-efi/lib/endpoints.js:89:17

Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

Boa tarde @cacadordecorno, tudo bem?

Os certificados em questão são referentes ao SSL do seu domínio.
Para configurar o webhook Pix é preciso de um servidor acessível pela internet e configurado com SSL.

Avatar discord do usuario cacadordecorno

cacadordecorno

Ver Respostas

ele informou um erro no ssl

Avatar discord do usuario teles1h

teles1h

Boa tarde pessoal. Estou com um problema ao tentar uma autenticacao com a pix api:
old SSL session ID is stale, removing
OpenSSL SSL_read: error:0A000126:SSL routines::unexpected eof while reading, errno 0
Closing connection 0

Avatar discord do usuario eliandrofb

eliandrofb

java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext)

Avatar discord do usuario eliandrofb

eliandrofb

Ver Respostas

Estou programando a integração em Java e estou com o mesmo problema. Adicionei os certificados dentro do projeto mas não consigo importá-los para fazer a requisição POST oauth/token

System.setProperty("javax.net.ssl.keyStore", "./resources/HDP-HML.p12");

Avatar discord do usuario deson00

deson00

Hoje pela manhã estou obtendo o seguinte erro abaixo em uma aplicação antiga.
cURL error 60: SSL certificate problem: certificate has expired (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)
Aplicaçoes feita para gerencianet precisa de modificação para Efi ?

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

OI, @wesleysnap. Bom dia! Tudo bem?
Além do seu domínio ter um certificado SSL, é necessário fazer a configuração do mTLS em seu webserver para que ocorra a autenticação mútua.
https://dev.efipay.com.br/docs/api-pix/webhooks#entendendo-o-padrão-mtls

Outro detalhe, é a adição do /pix no final da sua URL quando a Efí envia a notificação.
Ou seja, na request PUT https://api-pix.gerencianet.com.br/v2/webhook/:chave para cadastrar o webhook, você irá passar o body com sua URL, exemplo:

No entanto, a URL será registrada com o /pix no final, assim: https://seudominio.com.br/webhook/pix.

Então esta adição do /pix também dever ser tratada nas configurações de seu servidor para que na rota /webhook/pix de seu servidor exija o certificado CA da Gerencianet e recebe o body a partir dela.

Outra opção seria você colocar um query params na sua URL no momento do registro, para ignorar a adição do /pix, assim:

Avatar discord do usuario wesleysnap

wesleysnap

Ver Respostas

Está com o SSL já. Usei o webhook.site e chegou la.