Histórico de mensagens sobre ssl

EXIBINDO CONVERSAS RECENTES:

Texto: ssl
# pix
Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

Boa tarde <@!796521130038657045>! Como está a configuração do seu servidor? Verifique se o nosso CA está incluso e se o seu domínio está com o SSL (HTTPS)

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

<@!797900884436582411> Reparei em seu oOptions, no trecho cert: fs.readFileSync('./ssl/ssls/pixblack.in.crt') você está referenciando um arquivo .ctr

Em meu servidor estou referenciando um arquivo fullchain.pem, verifique se isto está influenciando em algo

# pix
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
};

# pix
Avatar discord do usuario branco1550

branco1550

certificado de domino pelo SSLS

# pix
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"
),
));

# pix
Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

Seu servidor é em Node? Tente utilizar este comando npm config set strict-ssl false

# pix
Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

Diego, tem como informar como está o path ao seu certificado?
CURLOPT_SSLCERT => ?

# pix
Avatar discord do usuario diegohenrique1989

diegohenrique1989

Ver Respostas

Estou tendo este erro dentro da função emitePix da sdk de exemplo: could not load PEM client certificate, OpenSSL error error:02001003:system library:fopen:No such process, (no key found, wrong pass phrase, or wrong file format?), alguém sabe como resolver ou o que pode ser?

# pix
Avatar discord do usuario teodoro.rafael

teodoro.rafael

function getAccessToken($pix_url_auth, $arq_certificado, $client_id, $client_secret)
{
/
# Esta rotina consome um endpoid POST da Gerencianet para realizar a geração do AccessToken
/

$curl = curl_init();

$authorization = base64_encode("$client_id:$client_secret");

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

$response = curl_exec($curl);

curl_close($curl);

return json_decode($response, true);
}

# pix
Avatar discord do usuario teodoro.rafael

teodoro.rafael

Ver Respostas

no postman é retornado "forbidden" e no exemplo do git aparece "'could not load PEM client certificate, OpenSSL error error:02001003:system library:fopen:No such process, (no key found, wrong pass phrase, or wrong file format?)"

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Isso mesmo, Renato. <@!585695073908293632>, pode ter sim SSL Lets Encrypt.

Neste caso, para que funcione em sua URL, você deve especificar a rota para exigir o certificado somente na rota /webhook. Da forma que está utilizando, irá exigir certificado a qualquer rota da sua URL

Para isso, para configurar utilize:

SSLCertificateFile /caminho_certificado/server_ssl.crt.pem
SSLCertificateKeyFile /caminho_certificado/server_ssl.key.pem

SSLCACertificateFile /caminho_certificado/chain-pix-prod.crt

SSLVerifyClient none

SSLVerifyClient require
SSLVerifyDepth 3

# pix
Avatar discord do usuario anoni_mato

anoni_mato

Ver Respostas

seudominio.com.br pode ter um SSL let's encrypt mas especificamente o endpoint seudominio.com.br/webhook precisa de configurações no webserver (Apache, Nginx, Lightspeed ou o que for) que exijam o certificado da gerencianet nas conexões entrantes (canal mTLS)

# pix
Avatar discord do usuario rafael_fig

rafael_fig

Ver Respostas

Eu dei uma olhada em sua resposta anterior, <@!775350441965649951> , entretanto, não faço as configurações do servidor, esse papel é um serviço terceirizado aqui na empresa. O certificado está sendo requisitado em uma rota específica, por exemplo: https://dominio.com.br/webhook
Não sei se isso vem ao caso, mas podemos utilizar o certificado SSL Lets Encrypt?

Como dito acima, quem gerencia o servidor é uma empresa terceirizada, mas não estou conseguindo passar a eles o que realmente eu preciso e/ou qual o problema..

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Realmente pode ser algo na configuração do mTLS.
É isto mesmo, e deve conter também:

SSLCertificateFile /caminho_certificado/server_ssl.crt.pem
SSLCertificateKeyFile /caminho_certificado/server_ssl.key.pem

# pix
Avatar discord do usuario rafael_fig

rafael_fig

Ver Respostas

Para configurar o mTLS eu devo inserir no servidor:
SSLVerifyClient require
SSLVerifyDepth 3
SSLCACertificateFile /caminho_certificado/chain-pix-prod.crt

Ou eu preciso fazer alguma outra coisa?

# pix
Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

Não precisa inserir em um local específico, você só precisa referenciar o diretório onde você baixou o certificado.
A privkey e o fullchain são gerados quando você configura o seu SSL com uma Autoridade Certificadora(Certificado que faz o seu domínio utilizar o HTTPS), caso já tenha você só precisa referenciá-los, caso não, pode utilizar um utilitário como Certbot.

# pix
Avatar discord do usuario rafael_fig

rafael_fig

Ver Respostas

Entendi, sou bem leigo tratando de servidor. Sobre caminho do certificado, preciso colocar em algum lugar específico?
Eu consigo checar se o meu servidor já possui o server_ssl.key.pem e o server_ssl.crt.pem?

# pix
Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

No Apache que é o seu caso, você insere

SSLVerifyClient require
SSLVerifyDepth 3

# pix
Avatar discord do usuario lynx_74

lynx_74

Ver Respostas

Ops, não funcionou, não: SSL_ERROR_SYSCALL