Histórico de mensagens sobre Skip-mTLS

EXIBINDO CONVERSAS RECENTES:

Texto: Skip-mTLS
# pix
Avatar discord do usuario palloma_efi

palloma_efi

Ver Respostas

Boa noite <@!691086570467622964> ! Você está obtendo esse retorno porque no header dessa requisição o parâmetro 'x-skip-mtls-checking' está setado como 'false' e o mTLS não está configurado no seu servidor.

# pix
Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

Bom dia, <@!451559045543886860>. Te passei no privado alguns detalhes sobre o skip-mTLS em caso de hospedagens compartilhadas ou que possuem restrições com a inserção de nosso certificado.

# pix
Avatar discord do usuario brubcruz

brubcruz

Ver Respostas

Bom dia
Em um servidor compartilhado (hostgator no caso) incluindo x-skip-mtls-checking como true quais outras configurações são necessárias?
Ao cadastrar a URL do webhook estou recebendo:
{"evento":"teste_webhook","data_criacao":"2021-08-06T12:37:04.450Z"}

# pix
Avatar discord do usuario Julia Efí

Julia Efí

Ver Respostas

Você está usando um servidor compartilhado? Se sim, é necessário incluir o atributo x-skip-mtls-checking como true. Se você não estiver utilizando um servidor compartilhado, é necessário configurar seu servidor com a autenticação mtls como mostra na documentação https://dev.gerencianet.com.br/docs/api-pix-endpoints#section-webhooks

# pix
Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

Boa tarde, não entendi muito bem, essa seria a configuração para recebimento das respotas do webhook ou para o cadastro do mesmo? Porque para o cadastro deve-se fazer uma requisição para PUT /v2/webhook/:chave informando o x-skip-mtls-checking": false, no cenário de hospedagem compartilhada. Posteriormente você vai precisar de uma rota para o recebimento das notificações do webhook, aí sim viria as configurações de request.socket.authorized.
Mais detalhes aqui: https://dev.gerencianet.com.br/docs/api-pix-endpoints#section-webhooks
Caso queira, também disponibilizamos SDK's com todos os endpoints da API Pix disponíveis: https://github.com/gerencianet

# pix
Avatar discord do usuario spontoni

spontoni

Ver Respostas

´´´app.put("/webhook", (request, response) => {

response.set({ "x-skip-mtls-checking": false })
response.header("x-skip-mtls-checking", false)

let data = request.body;

if (request.socket.authorized) {
response.status(200).end(JSON.stringify(data));
} else {
response.status(401).end(JSON.stringify({ erro: "Não autorizado", data: data }));
}
});´´´

# pix
Avatar discord do usuario Prof Zoidberg

Prof Zoidberg

$config = [
"certificado" => "./gerenciamento.pem",
"client_id" => "XXXXX",
"client_secret" => "XXXXX"
];
$autorizacao = $chaveiro["access_token"];

$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api-pix.gerencianet.com.br/v2/webhook/XXXXX',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_SSLCERT => $config["certificado"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => $chaveiro["access_token"],
CURLOPT_POSTFIELDS =>'{
"webhookUrl": "https://XXXXX/webhook.php"
}',
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer $autorizacao",
'x-client-cert-pem: ./gerenciamento.pem',
'x-skip-mtls-checking: false'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;

# pix
Avatar discord do usuario wesleykovalski

wesleykovalski

Segue o código:

// ENDPOINT COMPLETO
$endpoint = $this->baseUrl . '/oauth/token';

// HEADERS
$headers = [
'Content-type: application/json',
'x-skip-mtls-checking: true'
];

// CORPO DA REQUISIÇÃO
$request = [
'grant_type' => 'client_credentials',
'webhookUrl' => 'https://www.dominio.com.br/endpointdowebhook'
];


// CONFIGURAÇÃO DO CURL
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $endpoint,
CURLOPT_USERPWD => $this->clientId . ':' . $this->clientSecret,
CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode($request),
CURLOPT_SSLCERT => $this->certificate,
CURLOPT_SSLCERTPASSWD => '',
CURLOPT_HTTPHEADER => $headers
]);

# sugestões
Avatar discord do usuario joao_efi

joao_efi

Ver Respostas

Oi <@!177276428675448832> tudo bem? 🙂
O campo aceita ambos os valores, true e false.
Adição do header x-skip-mtls-checking no endpoint PUT /v2/webhook/:chave para permitir o cadastro de servidores webhooks sem validação de mTLS durante o consumo.
Regras explicadas:

Se o parâmetro não for enviado, iremos validar mTLS;
Se o parâmetro for enviado e valor igual à true, não validaremos mTLS ;
Se o parâmetro for enviado e valor diferente de true, validaremos mTLS;

Salientamos que a Gerencianet continuara a fornecer a comunicação com mTLS, ou seja, na comunicação da notificação nada mudou. O POST entre Gerencianet e EC continua enviando o certificado.

Para mais detalhes verifique o roadmap no link https://gnetbr.com/rke4baDVyd

# pix
Avatar discord do usuario jessica_efi

jessica_efi

Ver Respostas

Passa o x-skip-mtls-checking como true

# pix
Avatar discord do usuario b1n._

b1n._

$certificado_pix = "$_SERVER[DOCUMENT_ROOT]/functions/gerencianet/chain-pix-sandbox.crt";
$certificado_pix = json_encode(file_get_contents($certificado_pix), true);

CURLOPT_HTTPHEADER => array(
"Content-Type: application/json",
"Authorization: Bearer $token",
"x-client-cert-pem: $certificado_pix",
"x-skip-mtls-checking: false",
),

# pix
Avatar discord do usuario b1n._

b1n._

ah, o header:

CURLOPT_HTTPHEADER => array(
"Content-Type: application/json",
"Authorization: Bearer $token",
"x-skip-mtls-checking: false",
),

# pix
Avatar discord do usuario cleiton7853

cleiton7853

Ver Respostas

Boa noite! Pessoal, eu já consegui fazer toda a parte de geração do PIX, testei em produção com o valor de 0,01 e consegui pagar no aplicativo do meu banco, já até aparece lá no painel de vendas da GerenciaNet e tudo.

Eu configurei o webhook corretamente usando a biblioteca PHP da GerenciaNet usando a opção [x-skip-mtls-checking = true] porque não vou usar autenticação mTLS devido a restrições do meu servidor.

Para a implementação do recebimento das notificações, usei o script PHP que o <@!775350441965649951> me mandou. Já tem o subdiretório /pix e tudo direitinho.

O problema é que não estou recebendo nada lá. Para verificar se ALGUMA COISA está chegando, fiz até um log caso chegasse qualquer coisa naquele endereço, mas nada...

Alguém sabe me dizer o que posso fazer para tentar entender o que está acontecendo?

# pix
Avatar discord do usuario destemido9466

destemido9466

$config = [
"certificate" => realpath("certs/producao/certificado.pem")
];

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-pix.gerencianet.com.br/v2/webhook/".$chave_pix,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_SSLCERT => $config["certificate"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_POSTFIELDS =>'{
"webhookUrl": "https://webhook.com/webhook"
}',
CURLOPT_HTTPHEADER => array(
'authorization: Bearer '.$access_token,
'x-skip-mtls-checking: false',
'Content-Type: application/json'
),
));

$response = curl_exec($curl);
$options = json_decode($response, true);


if ($response === FALSE){
$curl_error = curl_error($curl);
}

curl_close($curl);
echo $response;

# pix
Avatar discord do usuario diegohenrique1989

diegohenrique1989

Ver Respostas

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api-pix-h.gerencianet.com.br/v2/webhook/[email protected]',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_SSLCERT => OPTIONS["pix_cert"],
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_POSTFIELDS =>'{
"webhookUrl": "' . WEBHOOK_URL . '"
}',
CURLOPT_HTTPHEADER => array(
"authorization: $tokenType $token",
'x-client-cert-pem: {{X-Certificate-Pem}}',
'x-skip-mtls-checking: true'
),
));

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Boa tarde, <@!477481308743008257>.
Exatamente conforme o Daniel mencionou. Atribuindo false para x-skip-mtls-checking fará co que exija o certificado em seu servidor.
Verifique também se em seu webhook está tratando o /pix no final da sua URL

# pix
Avatar discord do usuario roguitar88

roguitar88

$options['headers'] = array(
'x-skip-mtls-checking' => 'false',
);

# pix
Avatar discord do usuario roguitar88

roguitar88

Tentando fazer os testes aqui com 'x-skip-mtls-checking' => 'false', e continua dando 'bad request'

# pix
Avatar discord do usuario roguitar88

roguitar88

//Webhook update
$options['headers'] = array(
'x-skip-mtls-checking' => 'false',
);

try {
$api = Gerencianet::getInstance($options);

$params = ['chave' => '34646106000189'];
$body = ['webhookUrl' => 'https://olimppi.us/src/Includes/index.php?ignorar='];
// https://olimppi.us/webhook/pix.php?ignorar=
// https://olimppi.us/webhook/pix.php?ignorar=/pix

$pix = $api->pixConfigWebhook($params, $body);
echo json_encode($pix);

} catch (GerencianetException $e) {
print_r($e->code);
print_r($e->error);
print_r($e->errorDescription);

throw new \Error($e->error);
} catch (\Exception $e) {
throw new \Error($e->getMessage());
}

# pix
Avatar discord do usuario roguitar88

roguitar88

Ver Respostas

Pessoal, pra que serve mesmo esse 'x-skip-mtls-checking' => 'true', lá no update.php?