Histórico de mensagens sobre certificado em pix

EXIBINDO CONVERSAS RECENTES:

Texto: certificado
Canal: pix
Avatar discord do usuario rafaelvverde

rafaelvverde

o segundo, que uso para retransmitir a unica alteração que fiz é no subdominio, e um certificado específico pra ele.

Avatar discord do usuario rafaelvverde

rafaelvverde

Ver Respostas

Bom dia pessoal! Ainda sobre essa questão.
Eu consegui contornar criando um arquivo .php independente, em outro vhost, embora usando o "mesmo arquivo .conf", alterando apenas o subdominio. A conclusão que cheguei, foi a de que, por meu projeto original ser um framework (laravel), o mesmo se utiliza de arquivos .htaccess pra obfuscar a URL. e de alguma forma, isso interfere no processo de handshake da autenticacão mútua.

Então: Criei outro vhost, com certificado proprio no subdominio, recebendo o POST do webhook da GN, e retransmitindo para meu app principal via requisição post. Isso é provisório enquanto descubro o "ponto de falha" entre o framework e o protocolo mTLS.

Avatar discord do usuario anoni_mato

anoni_mato

Ver Respostas

dá pra colocar o certificado da GN lá?

Avatar discord do usuario Deleted User

Deleted User

Ver Respostas

Resolvi aqui, era um problema no meu server com certificado

Avatar discord do usuario Deleted User

Deleted User

Ver Respostas

não da, por causa do certificado CA do servidor

Avatar discord do usuario anoni_mato

anoni_mato

Outra coisa que eu já vi é o Apache dar problema quando vc usa um certificado que inclui a cadeia como SSLCertificateFile e tenta usar um SSLCACertificateFile ao mesmo tempo. Se limitar o TLS a 1.2+ não resolver, tenta usar o certificado sem a cadeia do Let's Encrypt (em vez do fullchain.pem, deve ter um outro arquivo que é só o certificado, cert.pem), e criar um arquivo unindo o ca.pem do Lets Encrypt + o .crt da GN pra usar como SSLCACertificateFile (não jogue o crt da GN dentro do ca.pem, pois esse ca.pem é sobrescrito a cada 2-3 meses quando o LE do domínio se renova). edit: ver meu outro comentário abaixo.

Avatar discord do usuario matheus_efi

matheus_efi

As configurações do VirtualHost aparentemente estão corretas, só para fins de testes insira os paths dos certificados dentro do Location

Avatar discord do usuario rafaelvverde

rafaelvverde

Ver Respostas

oi <@!671762828046106646> . Pois é. já me certifiquei disso. Inclusive testei removendo-os e recebi o erro específico para o cenário em que esses certificados não existem.

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

<@!704694550631022592> Bom dia!
Não se preocupe, este canal é mesmo para tirar suas dúvidas! 😉
Primeiramente, para quaisquer consumo dos endpoints do Pix, é necessário realizar uma autenticação com suas credenciais client_id, client_secret e certificado. Para isso, seu primeiro consumo será na rota POST /oauth/token. Segue exemplos em algumas linguagens: https://dev.gerencianet.com.br/docs/api-pix#section-exemplos-de-autentica-o-utilizando-o-certificado-p12

Após a autenticação, você utilizará o endpoint para criar uma cobrança PUT /v2/cob/{txid}. Documentação: https://dev.gerencianet.com.br/docs/api-pix#section-criar-cobran-a-

Para acompanhar as mudanças de status de um pix, você pode configurar um webhook, que reúne endpoints para gerenciamento destas notificações. https://dev.gerencianet.com.br/docs/api-pix#section-webhook

Utilize também nossa Collection da Gerencianet com todos os endpoints já configurados para o consumo (https://dev.gerencianet.com.br/docs#section-collection-postman-gerencianet-api-pix).
A respeito do seu certificado, logo lhe retornaremos através do ticket.

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Para utilizarem a API PIX Gerencianet, precisará de um certificado gerado por nós.
Para isso acesse nosso site em sua conta, no menu API > Minhas aplicações você criará uma aplicação que são gerados 2 pares de chaves Client_Id e Client_Secret, sendo um par para utilização em ambiente de Produção e outro para Homologação.

Então abra um ticket acessando https://sistema.gerencianet.com.br/tickets/criar, e solicite o certificado para integração nos informando:
-Número da sua conta:
-Nome da aplicação criada:
-Ambiente: Produção/Homologação

Em nossa documentação(https://dev.gerencianet.com.br/docs) você encontra os nossos endpoints com explicações detalhadas, você pode verificar também a Collection da Gerencianet com todos os endpoints já configurados para o consumo (https://dev.gerencianet.com.br/docs#section-collection-postman-gerencianet-api-pix).

Para você que iniciará com PHP, possuímos uma SDK com os principais endpoints para a utilização do Pix, disponível em nosso GitHub. https://github.com/gerencianet/gn-pix-sdk-php-exemplo

Avatar discord do usuario guilherme_efi

guilherme_efi

Ok. <@!790400805303746571> no atributo nome_certificado, insira somente o nome do certificado. Ele deve estar contido na pasta certificado

Avatar discord do usuario guilherme_eyhe3189

guilherme_eyhe3189

{
"sandbox": true,
"chave": "[email protected]",
"recebedor": "Guilherme Menegussi",
"homologacao": {
"nome_certificado": "https://www.eyhe.com.br/3.0/painel/enginePIX/direct_api/certificado.pem",
"client_id": "xxx",
"client_secret": "xxx",
"pix_url_auth": "https://api-pix-h.gerencianet.com.br/oauth/token",
"pix_url_cob": "https://api-pix-h.gerencianet.com.br/v2/cob",
"pix_url": "https://api-pix-h.gerencianet.com.br/v2/pix"
},
"producao": {
"nome_certificado": "productionCertificate.pem",
"client_id": "xxx",
"client_secret": "xxx",
"pix_url_auth": "https://api-pix.gerencianet.com.br/oauth/token",
"pix_url_cob": "https://api-pix.gerencianet.com.br/v2/cob",
"pix_url": "https://api-pix.gerencianet.com.br/v2/pix"
}
}

Avatar discord do usuario guilherme_eyhe3189

guilherme_eyhe3189

já estou com certificado .pem

Avatar discord do usuario guilherme_efi

guilherme_efi

O privkey.pem e o fullchain.pem do meu certificado são gerados pelos Letsencrypt, somente informei o diretório onde estão localizados

Avatar discord do usuario guilherme_efi

guilherme_efi

Como está o meu, utilizo certificado Letsencrypt

const httpsOptions = {
key: fs.readFileSync("/etc/letsencrypt/live/meudominio.com.br/privkey.pem"),
cert: fs.readFileSync("/etc/letsencrypt/live/meudominio.com.br/fullchain.pem"),
ca: fs.readFileSync("/etc/apache2/chain-pix-prod.crt"),
minVersion: "TLSv1.2",
requestCert: true,
rejectUnauthorized: true,
};

Avatar discord do usuario branco1550

branco1550

Ver Respostas

sslOptions = {
key: fs.readFileSync('./ssl/ssls/pixblack_in.pem'),
cert: fs.readFileSync('./ssl/ssls/pixblack.in.crt'),
ca: fs.readFileSync('./ssl/ssls/chain-pix-prod.crt'),
minVersion: 'TLSv1.2', // força o uso de TLS da versão 1.2 para cima
requestCert: true, // força que o cliente envie um certificado de cliente (mtls)
rejectUnauthorized: false // rejeita clientes que não enviarem certificados válidos
};

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Este erro ocorre porque não foi capaz de verificar o certificado do servidor enviado na etapa 2.

Onde na primeira etapa, certificamos que seu servidor esteja exigindo uma chave pública da Gerencianet.

Na segunda etapa ocorre a identidade do servidor, onde enviaremos a notificação junto com a nossa chave pública, o seu servidor que deve conter a chave pública disponibilizada que irá realizar o "Hand-Shake" e assim a comunicação ser estabelecida.

Avatar discord do usuario branco1550

branco1550

certificado de domino pelo SSLS

Avatar discord do usuario guilherme_eyhe3189

guilherme_eyhe3189

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-pix-h.gerencianet.com.br/oauth/token", // Rota base, desenvolvimento ou produção
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"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $autorizacao",
"Content-Type: application/json"
),
));

Avatar discord do usuario guilherme_eyhe3189

guilherme_eyhe3189

sobre o certificado, eu apenas transformei o .p12 que recebi da propria gerencianet