Histórico de mensagens sobre Skip-mTLS

EXIBINDO CONVERSAS RECENTES:

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

guilherme_efi

Ver Respostas

Além de criar um servidor na OCI, durante os testes você pode utilizar a opção skip-mtls e registrar uma URL do https://webhook.site/, por exemplo.

# pix
Avatar discord do usuario diogo.f.m.7

diogo.f.m.7

Ver Respostas

No webhook do Pix q seria mais complicado por conta do mtls... Mas vc pode usar o skip-mtls....

# pix
Avatar discord do usuario jhon0029

jhon0029

Ver Respostas

from efipay import EfiPay
from credenciais import CREDENTIALS

gn = EfiPay(CREDENTIALS)
headers = {'x-skip-mtls-checking': 'false'}
params = {'chave': ''}
body = {'webhookUrl': 'http://xxx.xxx.xxx.xxx:5000/webhook/pix'}
response = gn.pix_config_webhook(params=params, body=body, headers=headers)
print(response)

alguem pode me dizer se com este exemplo consigo verificar se meu server webhook está funcionando?

# pix
Avatar discord do usuario trtavares

trtavares

Webhook devidamente configurado com skip-mtls

# pix
Avatar discord do usuario tarcizio5821

tarcizio5821

Tem algum tutorial para webhook em servidor compartilhado?
Segui os passos para usar Skip-mTLS sem sucesso.
Só funciona no Postman com sucesso sem usar a hash: https://seu_dominio.com.br/webhook?hmac=xyz&ignorar=sua_chave, na hora de usar com PHP informando a hash, não funciona de jeito nenhum.
Alguém que possa ajudar?
Meu servidor compartilhado é da Hostinger.

# dúvidas
Avatar discord do usuario thieko

thieko

Ver Respostas

estou usando skip-mTLS:true

# pix
Avatar discord do usuario m.h1604

m.h1604

Ver Respostas

Alguém poderia me ajudar sobre uma dúvida das notificações do Pix.

Configurei uma url de notificações com o skip-MTLs ativo seguindo esta estrutura: http://urldosite/notifications.php

Porém quando recebo a resposta, vem somente um requisição em branco, e no webhook inbox chega normalmente a notificação.

Alguém consegue me ajudar com isso?

# pix
Avatar discord do usuario matheuzin6375

matheuzin6375

Ver Respostas

Boa tarde.

codigo:

def configure_webhook():
url = "https://api-pix.gerencianet.com.br/v2/webhook/chave"
headers = {
"x-skip-mtls-checking": "true",
}

body = {
"webhookUrl": "https://ac7-1bd37c9a12e8.herokuapp.com/show/webhook?hmac={HASH_SECRET_KEY}&ignorar=",
"chave": "6831e783-a812-45c7-a98f-962745a78ad4"
}

response = requests.put(url, headers=headers, data=body)

return response

response = configure_webhook()

erro:

requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(10054, 'Foi forçado o cancelamento de uma conexão existente pelo host remoto', None, 10054, None))

alguém consegue me explicar?

# dúvidas
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Se está dando isso o skip-mtls não está funcionando... então você tem a oportunidade de fazer corretamente, com mTLS.

# pix
Avatar discord do usuario joaovicto

joaovicto

no meu arquivo de options
contem o seguinte trecho de codigo como retorno:
onde "x-skip-mtls-checking" => true
esta configurada como true
imagem enviada na mensagem pelo usuario joaovicto

# pix
Avatar discord do usuario _josemax

_josemax

Ver Respostas

Tentando 54.242.231.66:443... Conectado ao pix-h.api.efipay.com.br (54.242.231.66) porta 443 (#0) ALPN, oferecendo http/1.1 CAfile: /etc/ssl/ certs/ca-certificates.crt CApath: /etc/ssl/certs Conexão SSL usando TLSv1.3 / TLS_AES_256_GCM_SHA384 ALPN, servidor aceito para usar http/1.1 Certificado do servidor: subject: C=BR; ST=MINAS GERAIS; L=OURO PRETO; O=EFI SA - INSTITUIÇÃO DE PAGAMENTO; CN=.api.efipay.com.br data de início: 17 de maio 19:31:27 2023 GMT data de expiração: 17 de junho 19:31:26 2024 GMT subjectAltName: host "pix-h.api.efipay. com.br" certificado correspondente ".api.efipay.com.br" emissor: C=BE; O=GlobalSign nv-sa; CN=GlobalSign RSA OV SSL CA 2018 Certificado SSL verificado ok. > PUT /v2/webhook/9f86e12a-370d-44dd-bd47-4b6a0b17bae5 HTTP/1.1 Host: pix-h.api.efipay.com.br User-Agent: GuzzleHttp/7 Content-Type: application/json Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 ..VrAQ4hHRYVRvl9dzWsvX79j_VvtOcz-fSvo0LxuaQgY api-sdk: efi-php-1.6.1 x-skip-mtls-checking: false Content-Length: 51 ID de sessão SSL antigo está obsoleto, removendo Marcar pacote como não compatível com multiuso < HTTP/1.1 400 Solicitação incorreta Conexão #0 ao host pix-h.api.efipay.com.br deixada intacta 400
webhook_invalido Uma URL informada respondeu com o código HTTP 400

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Não, vai só o x-skip-mtls-checking

# pix
Avatar discord do usuario iberemendes

iberemendes

Ver Respostas

'x-skip-mtls-checking' => 'true'
isso vai no header ?

# pix
Avatar discord do usuario m.h1604

m.h1604

Ver Respostas

Vou mostrar como estou fazendo.

Parâmetros passados para criação do webhook:

$this->options["headers"] = [
"x-skip-mtls-checking" => "true",
];

$params = [
"chave" => $this->pix_key
];

$body = [
"webhookUrl" => "https://contratos.onlinedobrasil.com/webhook?ignorar="
];

Rota que está recebendo as notificações:
Routes::map('/webhook', function() {
if (isset($_POST)):
file_put_contents(__DIR__ . "/request.json", json_encode($_POST));
endif;

wp_send_json(200);
});

Estou salvando em um arquivo teste para ver o retorno das notificações, mas a única coisa que é gravado é um json vazio.

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, @m.h1604. Tudo bem?
Caso opte por deixar o x-skip-mtls-checking como true __a Efí vai continuar a enviar o certificado na requisição__, mas como descrito, seu servidor irá ignorá-lo. No entanto é aconselhável que você encontre uma forma de configurar o mTLS e validar se é a Efí quem está enviando a notificação.
Uma outra sugestão é verificar o IP de quem está notificando, pois a Efí comunica os webhook através do IP 34.193.116.226

Para facilitar a tratativa da adição do /pix quando a Efí envia a notificação, você pode registrar a URL com um parâmetro. Exemplo: https://seudominio.com.br/webhook/?ignorar=. Assim sua aplicação receberá as notificações sempre na rota /webhook.

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Você está respondendo também em URL+"/pix" ? Pq você precisa atender nos dois, e as notificações só são enviados para o +"/pix".

Sobre o skip-mTLS, desligar a checagem não significa que você possa deixar de fazer mTLS. A Hostgator precisaria te passar o certificado usado na conexão para você fazer o mTLS na sua aplicação. Limitação do ambiente não é carta-branca para desobedecer o manual do Pix.

# pix
Avatar discord do usuario m.h1604

m.h1604

Ver Respostas

Olá pessoal, tudo bem?

Estou com um problema para receber as notificações do Pix.

Eu cadastro a URL de notificação certinho porem não estou recendo a resposta da transação.

Estou usando com o "x-skip-mtls-checking" => "true" pois o sistema do cliente está um host compartilhado na Hostgator.

Já tentei vários testes porém não recebo resposta na url de notificação.

# pix
Avatar discord do usuario andervieiradev

andervieiradev

passei o "headers" => [
"x-skip-mtls-checking" => "true",
],

# dúvidas
Avatar discord do usuario guilherme_efi

guilherme_efi

@adilalima, como vai?
Na SDK o parâmetro 'x-skip-mtls-checking' deve ser passado no array 'headers'. Assim:

php
$webhook = EfiPay::getInstance([
'client_id' => CONF_EFI_SANDBOX ? CONF_EFI_DEV_CLIENT_ID : CONF_EFI_CLIENT_ID,
'client_secret' => CONF_EFI_SANDBOX ? CONF_EFI_DEV_CLIENT_SECRET : CONF_EFI_CLIENT_SECRET,
'certificate' => CONF_EFI_SANDBOX ? CONF_EFI_DEV_PIX_CERTIFICATE : CONF_EFI_PIX_CERTIFICATE,
'headers' => ['x-skip-mtls-checking' => "true"],
]);

# dúvidas
Avatar discord do usuario adilalima

adilalima

Opa, tudo ótimo e contigo?
Então, mesmo seguindo esse guia e fazendo (supostamente) igual acabo recebendo o mesmo erro de código 400 e de descrição "A autenticação de TLS mútuo não está configurada na URL informada":

public function config_webhook(array $data): void
{
$webhook = EfiPay::getInstance([
'client_id' => CONF_EFI_SANDBOX ? CONF_EFI_DEV_CLIENT_ID : CONF_EFI_CLIENT_ID,
'client_secret' => CONF_EFI_SANDBOX ? CONF_EFI_DEV_CLIENT_SECRET : CONF_EFI_CLIENT_SECRET,
'certificate' => CONF_EFI_SANDBOX ? CONF_EFI_DEV_PIX_CERTIFICATE : CONF_EFI_PIX_CERTIFICATE,
'x-skip-mtls-checking' => "true",
]);

$webhook = $webhook->pixConfigWebhook(
['chave' => CONF_EFI_PIX_KEY],
['webhookUrl' => CONF_EFI_PIX_WEBHOOK_URL]
);

$this->call(code: 200)->back(['data' => $data, 'headers' => $this->headers, 'webhook' => $webhook]);
}

É um comportamento esperado?