Histórico de mensagens sobre ssl em pix

EXIBINDO CONVERSAS RECENTES:

Texto: ssl
Canal: pix
Avatar discord do usuario matheus_efi

matheus_efi

É o SSL gerado para o domínio da sua aplicação. Não tem nada relacionado ao nosso certificado

Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

O fullchain e o privkey são como o server_ssl.crt.pem e o
server_ssl.key.pem. Eles são parte do seu SSL. Você pode gera-los utilizando um site como o certbot por exemplo. Ou utilizar um privado

Avatar discord do usuario d3xt3r.com

d3xt3r.com

context.load_verify_locations('caminho-certificados/certificado-público-Gerencianet.crt')
context.load_cert_chain(
'caminho-certificados/privkey.pem',
'caminho-certificados/privkey.pem')
app.run(ssl_context=context, host='0.0.0.0')

público-Gerencianet.crt (baixei o que disponibilizou na documentação)
caminho-certificados/privkey.pem (utilizei o que me mandaram no chamado de produção)
caminho-certificados/privkey.pem (Não sei como conseguir)

Avatar discord do usuario matheus_efi

matheus_efi

Não é necessário senha para o certificado. Tenta inserir uma senha vazia, ou então este comando:

openssl pkcs12 -in certificado.p12 -out certificado.pem -nodes

Avatar discord do usuario oleoessencial

oleoessencial

habilitei full tls/ssl e nada, aparece 403 Forbidden.

Avatar discord do usuario marcosnicolau3509

marcosnicolau3509

Ver Respostas

Oi <@!710205440956563536> . As chaves são o certificado tls/ssl do servidor do cliente. Já foi solicitado aos nossos consultores maiores informações sobre essa configuração e alguns exemplos dessa configuração para efetuar o handshake, tanto para a leitura do location, gerado pelo PUT no consumo da geração da cobrança Pix, quanto para o webbhook. A intenção é ter um artigo específico sobre essa questão no decorrer desta segunda-feira (23/11). De qualquer maneira, se tiver novas informações, por favor, nos avise.

Avatar discord do usuario oleoessencial

oleoessencial

Cheguei até este código, não sei gerar estes certificados, estou lendo aqui sobre, o cloudflare criou: o certificado e a chave privada com mTLS. 😦

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://blaablabla.com:443');
curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
curl_setopt($ch, CURLOPT_SSLCERT, 'client.crt');
curl_setopt($ch, CURLOPT_SSLKEY, 'client.key');
curl_setopt($ch, CURLOPT_CAINFO, 'ca.crt'); // Lí agora que é o certificado raiz, para depois gerar o client.key.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);



?>

Avatar discord do usuario jaoedson

jaoedson

Ver Respostas

Tentei configurar aqui o Webhook e retornou "A autenticação de TLS mútuo não está configurada na URL informada". Entrei no cPanel do nosso servidor e em Segurança>SSL/TLS>Gerar tem a opção de subir um certificado .crt, mas estou com medo de sobrepor o certificado SSL do site é dar um problemão. Alguém já conseguiu configurar o webhook em modo produção?

Avatar discord do usuario lorenacastro

lorenacastro

Ver Respostas

$file = file_get_contents("./config.json");
$config = json_decode($file, true);
$environment = ($config["sandbox"] === true) ? "development" : "production";
$certfile = $config[$environment]["certificate_name"];

$curl = curl_init();

curl_setopt_array($curl, array (
CURLOPT_URL => $location,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_SSLCERT => $certfile,
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array (
"Authorization: Bearer " . $access_token,
"Content-Type: application/json"
),
));

$response = curl_exec($curl);
echo $response;

Avatar discord do usuario lorenacastro

lorenacastro

Ver Respostas

function auth() {
$file = file_get_contents("./config.json");
$config = json_decode($file, true);
$environment = ($config["sandbox"] === true) ? "development" : "production";

$certfile = $config[$environment]["certificate_name"];

$curl = curl_init();

$authorization = base64_encode($config[$environment]["client_id"] . ":" . $config[$environment]["client_secret"]);

curl_setopt_array($curl, array(
CURLOPT_URL => $config[$environment]["pix_auth_url"], // 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 => $certfile, // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $authorization",
"Content-Type: application/json"
),
));

$response = curl_exec($curl);

curl_close($curl);

echo "

";
echo $response;
echo "
";
}

Avatar discord do usuario lorenacastro

lorenacastro

eu fiz assim, para teste:

function auth() {
$ch = curl_init();

$requestURL = 'https://api-pix-h.gerencianet.com.br/oauth/token';
$cliendId = ''; //seu client id
$clientSecret = ''; //seu client secret
$authorization = base64_encode($cliendId . ":" . $clientSecret);
$certFile = ''; //o caminho do certificado
$arr = ['grant_type' => 'client_credentials'];
$headers = [];
$headers[] = 'Content-Type: application/json';
$headers[] = 'Authorization: Basic ' . $authorization;

curl_setopt($ch, CURLOPT_URL, $requestURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($arr));
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_SSLCERT, $certFile);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
$resposta = json_decode($result);

if (curl_errno($ch)) {
die('Erro: ' . curl_error($ch));
}

curl_close($ch);

return $resposta->access_token;
}

Avatar discord do usuario oleoessencial

oleoessencial

Ver Respostas

Estou tentando usar este exemplo , aonde eu pego o {"grant_type": "client_credentials"} ?
$file = file_get_contents("./config.json");
$config = json_decode($file, true);
$environment = ($config["sandbox"] === true) ? "development" : "production";

$certfile = "./certificate/" . $config[$environment]["certificate_name"];

$curl = curl_init();

$authorization = base64_encode($config[$environment]["client_id"] . ":" . $config[$environment]["client_secret"]);

curl_setopt_array($curl, array(
CURLOPT_URL => $config[$environment]["pix_auth_url"], // 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 => json_encode("{"grant_type": "client_credentials"}"),
CURLOPT_SSLCERT => $certfile, // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $authorization",
"Content-Type: application/json"
),
));

$response = curl_exec($curl);

curl_close($curl);

echo "

";
echo $response;
echo "
";

Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

Qual a versão do seu pyOpenSSL? Tente atualizar para uma versão mais recente por favor

Avatar discord do usuario d3xt3r.com

d3xt3r.com

Ver Respostas

requests.exceptions.SSLError: HTTPSConnectionPool(host='api-pix-h.gerencianet.com.br', port=443): Max retries exceeded with url: /oauth/token (Caused by SSLError(SSLError(9, '[SSL] PEM lib (_ssl.c:3833)')))

Avatar discord do usuario d3xt3r.com

d3xt3r.com

Ver Respostas

Utilizo essa mesma collection <@!671762828046106646> ja esta operacional, estou codando, o problema é quando faço o request com os mesmos parâmetros pelo q acompanhei por aqui, tem relação com o openssl no mac

Avatar discord do usuario d3xt3r.com

d3xt3r.com

<@!652136709982781470> no mac estou obtendo o retorno Error 54 'Connection reset by peer' acredito que tem relação com o openssl

Avatar discord do usuario oleoessencial

oleoessencial

> mesmo com o access_token deu esse erro: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to api-pix-h.gerencianet.com.br:443
> alguém sabe pq?
<@!709030803291635736> lorena você fez a requisição em qual endpoint no postman ?

Avatar discord do usuario lorenacastro

lorenacastro

mesmo com o access_token deu esse erro: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to api-pix-h.gerencianet.com.br:443
alguém sabe pq?

Avatar discord do usuario jaoedson

jaoedson

Passeis as credenciais, url e CURLOPT_SSLCERT(para o certificado) em $options mas estou recebendo o erro "cURL error 35: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to api-pix-h.gerencianet.com.br:443 (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)"