Histórico de mensagens sobre certificado em pix

EXIBINDO CONVERSAS RECENTES:

Texto: certificado
Canal: pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O arquivo de certificado precisa ter duas seções, uma com o certificado e uma com a chave privada.

Avatar discord do usuario andresisdanca

andresisdanca

Ver Respostas

Tem que extrair o certificado para servidor? ou algo assim ...

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O teste que o <@!826080016981819402> sugeriu é interessante sim, para verificar se o processo que vai tentar configurar o certificado tem permissão de leitura. Você pode também ver se o arquivo tem permissão de leitura para others num "ls -la".

Avatar discord do usuario andresisdanca

andresisdanca

Funciona quando rodo no main .... mais quando rodo o servidor web .... não funciona .... Coloquei o caminho do certificado inteiro .. e não relativo.

Avatar discord do usuario andresisdanca

andresisdanca

Ver Respostas

Está apontando certo.

Veja o código:

File file = new File(CERTIFICADO);

System.out.println("certificado: " + file.isFile() );
System.out.println("certificado: " + file.getAbsolutePath() );

String rota = URL_PADRAO + "/oauth/token";

String basicAuth = Base64.getEncoder().encodeToString(((CLENTE_ID + ':' + CLIENTE_SECRET).getBytes()));
System.setProperty("javax.net.ssl.keyStore", CERTIFICADO);

SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();

System.out.println("sslsocketfactory:" + sslsocketfactory.toString() );

URL url = new URL(rota); //Para ambiente de Desenvolvimento
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Authorization", "Basic " + basicAuth);
conn.setSSLSocketFactory(sslsocketfactory);

String requestJson = "{\"grant_type\": \"client_credentials\"}";

try (DataOutputStream stream = new DataOutputStream(conn.getOutputStream())) {

byte[] send = requestJson.getBytes("UTF-8");

stream.write(send);

stream.flush();

}

conn.connect();

String responseJson = inputStreamToString(conn.getInputStream());

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Andre, o erro 403 (Forbidden) geralmente é relacionado ao certificado. Você utiliza servidor Linux ou Windows? Provavelmente deve ser algo relacionado ao path do certificado.

Avatar discord do usuario andresisdanca

andresisdanca

Ver Respostas

System.setProperty("javax.net.ssl.keyStore", CERTIFICADO);

Quando uso no método main isso funciona e seta a propriedade e quando uso no servidor web não acha o certificado.
Alguma ideia?

No servidor web me dá está resposta:
Server returned HTTP response code: 403 for URL: https://api-pix.gerencianet.com.br/oauth/token

Não acho que seja o certificado ... até acredito que está pegando pois coloquei o endereço completo ....
Deve ser alguma configuração que pode estar faltando para o servidor web local.

Avatar discord do usuario andresisdanca

andresisdanca

Onde colocar o certificado dentro do Glassfish? e manter a configuração: "pix_cert": "./certs/producao_tec.p12" ....

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

A mensagem não cita o certificado...

Avatar discord do usuario andresisdanca

andresisdanca

Ver Respostas

Agora apesar de achar o arquivo de configuração .. ele me dá a mensagem: Severe:

br.com.gerencianet.gnsdk.exceptions.AuthorizationException: Authorization Error: Client_id or Client_secret are wrong

Só pode ser o certificado

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Se não mostrar o certificado e sua respectiva chave privada vai dar problema mesmo. Mas se não for isso, eu vi muita gente batendo cabeça por causa do protocolo de conexão, que precisa ser TLS 1.2 ou TLS 1.3, com mais gente conseguindo fazer funcionar em TLS 1.2.

Avatar discord do usuario andresisdanca

andresisdanca

Ver Respostas

Estou passando raiva .... fiz um projeto com as classes e tudo funcionando ... agora que incorporei ao projeto web para usar .... apanhando em pegar o certificado ... até pega o arquivo de configuração ... mas o certificado está osso.

Avatar discord do usuario andresisdanca

andresisdanca

Ver Respostas

em produção ... não estou conseguindo colocar a sistema para achar o arquivo do certificado de forma correta.

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, <@!883000147938783272>. Como vai?
Não há restrições por estar em ambiente de produção.
Verifique se as credenciais e certificado então corretas, e se estiver utilizando alguma SDK, verifique se o parâmetro que define o ambiente está sandbox: false

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

A configuração do SDK para produção ou homologação bate com o conjunto de credenciais e certificado que você está usando ?

Avatar discord do usuario gugamarcelino

gugamarcelino

Estava funcionando normalmente, tem validade o certificado?

Avatar discord do usuario gugamarcelino

gugamarcelino

"FALHA AO LER O CERTIFICADO"

Avatar discord do usuario jrodella

jrodella

aqui eu criei a aplicação node seguindo +/- o que tá no tutorial da GN e usei o certbot para gerar o certificado automaticamente.
não sei por onde você está fazendo, mas aqui usamos AWS, daí tem que configurar os .config para ir criando os serviços.

Avatar discord do usuario heldersi.

heldersi.

e vcs configuram o certbot? ou usam alguma plataforma que gera o certificado automaticamente?

Avatar discord do usuario heldersi.

heldersi.

utilizamos em nossa api serviços serverless, como apps platform da digital ocean e cloud run do GCP. Nesses casos, não temos acesso direto aos certificados, pois são gerados automaticamente pelas plataformas.