Histórico de mensagens sobre ssl em dúvidas

EXIBINDO CONVERSAS RECENTES:

Texto: ssl
Canal: dúvidas
Avatar discord do usuario luizfeleal

luizfeleal

Ver Respostas

recebi esse erro com o arquivo .p12:
Exception: could not load PEM client certificate from /projeto_maquina_api/storage/app/Certificados/certificate12.p12, OpenSSL error error:0480006C:PEM routines::no start line, (no key found, wrong pass phrase, in file /projeto_maquina_api/app/Services/Efi/AuthService.php on line 62

Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

@luizfeleal existem algumas falha em como você montou a requisição, segue um exemplo de como fazer a autenticação:

php
//Desenvolvido pela Consultoria Técnica da Efí
$config = [
"certificado" => "./certificado.pem",
"client_id" => "YOUR-CLIENT-ID",
"client_secret" => "YOUR-CLIENT-SECRET"
];
$autorizacao = base64_encode($config["client_id"] . ":" . $config["client_secret"]);

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://pix-h.api.efipay.com.br/oauth/token", // Rota base, homologação 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"
),
));

$response = curl_exec($curl);

curl_close($curl);

echo "
";
echo $response;
echo "
";
?>

Avatar discord do usuario luizfeleal

luizfeleal

Ver Respostas

$credenciaisBase64 = base64_encode($cliente_id . ":" . $client_secret);

$url = env('URL_EFI') . "/oauth/token";

// Inicializa a sessão cURL
$ch = curl_init();


curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); // Verifica o certificado do servidor
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // Verifica o host do certificado
curl_setopt($ch, CURLOPT_SSLCERT, $certificado); // Define o certificado a ser usado


// Adiciona os dados do cliente como autenticação básica
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/x-www-form-urlencoded',
"Authorization: Basic " . $credenciaisBase64

]);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'grant_type' => 'client_credentials',
]));

// Executa a requisição e obtém a resposta
$resposta = curl_exec($ch);

Avatar discord do usuario luizfeleal

luizfeleal

Ver Respostas

Olá, bom dia! Estou tendo um erro ao tentar enviar uma requisição para me autenticar com a API. O erro é o seguinte:
Exception: OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 0 in file.
Conseguem me ajudar?

Avatar discord do usuario denilsonbehenck

denilsonbehenck

Ver Respostas

Galera boa tarde, estou fazendo a autenticacao em php mas deu o seguinte erro

Fatal error: Uncaught Exception: Erro ao executar solicitação curl: could not load PEM client certificate, OpenSSL error error:02001002:system library:fopen:No such file or directory, (no key found, wrong pass phrase, or wrong file format?) in C:\xampp\htdocs\efi\auth.php:54 Stack trace: #0 {main} thrown in C:\xampp\htdocs\efi\auth.php on line 54
no caso da erro de senha, peguei o codigo da documentação coloquei o ceritificado.pem na pasta mas da esse erro

Avatar discord do usuario ilusinusmate

ilusinusmate

Ver Respostas

Quando tento criar uma instância da classe usando Efipay com as minhas credenciais de homologação recebia um erro SSL ontem, porém hoje recebo Connection Error utilizando a SDK python.

Avatar discord do usuario ilusinusmate

ilusinusmate

Ver Respostas

import os
# import ssl
# import certifi
from dotenv import load_dotenv
from efipay import EfiPay

load_dotenv("../../.env")

# if not os.path.isfile('C:\\Users\\Joaogsp\\Desktop\\j1\\programas\\Projetos Athavus\\emporio_sertanejo\\emporio_sertanejo\\emporio-ec2.pem'):
# raise FileNotFoundError("Certificate file not found.")



# cert = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
# cert.load_verify_locations(cafile=certifi.where())
# cert.load_cert_chain('C:\\Users\\Joaogsp\\Desktop\\j1\\programas\\Projetos Athavus\\emporio_sertanejo\\emporio_sertanejo\\emporio-ec2.pem')

credentials = {
'client_id':os.getenv("CLIENT_ID"),
'client_secret': os.getenv("CLIENT_SECRET"),
'sandbox': True,
'certificate': 'C:\\Users\\Joaogsp\\Desktop\\j1\\programas\\Projetos Athavus\\emporio_sertanejo\\emporio_sertanejo\\emporio-ec2.pem'
}

efi = EfiPay(credentials)

body = {
'calendario': {
'expiracao': 3600
},
'devedor': {
'cpf': '',
'nome': ''
},
'valor': {
'original': '00.01'
},
'chave': '83988864397',
'solicitacaoPagador': 'Cobrança dos serviços prestados.'
}

response = efi.pix_create_immediate_charge(body=body)
print(response)
Esse é exatamente o meu código

Avatar discord do usuario ilusinusmate

ilusinusmate

Boa noite, alguém sabe me dizer exatamente como devo passar o caminho especifico para o meu arquivo .pem usando a SDK python? Utilizei o mesmo exemplo do github da EFI, porém sempre recebo erros de SSL.

Avatar discord do usuario joao_efi

joao_efi

Boa tarde @igorgxmes tudo bem?
Você pode tentar converter o certificado para o formado .pem e então abri-lo no seu editor de texto.
Após isso, selecionar o tipo de auth como "cliente side ssl certificate" e copiar o certificado e chave para os respectivos campos.
Acredito que funcione!
imagem enviada na mensagem pelo usuario joao_efi

Avatar discord do usuario hignacio.

hignacio.

$curl = curl_init();
curl_setopt_array($curl,[
CURLOPT_URL => $endpoint,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => $method,
CURLOPT_SSLCERT => $this->certificate,
CURLOPT_SSLCERTPASSWD => '',
CURLOPT_HTTPHEADER => $headers
]);