Histórico de mensagens sobre mtls

EXIBINDO CONVERSAS RECENTES:

Texto: mtls
# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O ambiente de homologação tem uma CA diferente para usar na configuracão de mTLS...

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Em uma VPS você tem a liberdade de alterar as configurações do Apache para configurar o mTLS.
Vou iniciar um atendimento para lhe dar mais detalhes.

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Olá, @felipenunes0714. Infelizmente, não fizemos testes para configurar o mTLS com ReactPHP, então não temos esse conteúdo disponível

# pix
Avatar discord do usuario felipenunes0714

felipenunes0714

Ver Respostas

perdão, deixa eu reformular minha pergunta, no tutorial no canal da efipay é utilizado um servidor ubumtu para poder configurar o mtls no webhook, não existe uma forma mais prática só com php?

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, @excarplex_27431! Tudo bem?
1. Para configurar um split de pagamento em uma cobrança Pix, você precisará seguir alguns passos específicos e utilizar os endpoints adequados da API. Aqui está um resumo das informações para te orientar:
1.1. Configuração do Split de Pagamento:
Primeiro, é necessário criar uma configuração de split. Isso é feito através do endpoint específico para configuração de split, disponível aqui. Esta configuração pode ser reutilizada em múltiplas cobranças Pix, o que facilita o processo se você tiver uma estrutura de split recorrente.
1.2. Criação da Cobrança Pix:
Após configurar o split, o próximo passo é criar a cobrança Pix. Isso pode ser feito de duas maneiras, dependendo do tipo de cobrança:
1.2.1. Cobrança Imediata: Utilize o endpoint para criar uma cobrança imediata com um TXID, disponível aqui.
1.2.2Cobrança com Vencimento: Se a cobrança tiver vencimento, utilize este endpoint.
1.3. Associação da Configuração de Split à Cobrança Pix:
Com a cobrança Pix criada, você precisará associar a configuração de split à cobrança. Isso é feito através do endpoint específico para vinculação de cobrança com split, disponível aqui.
Além disso, para melhor compreensão do processo de split de pagamento, você pode consultar o fluxograma disponível neste link.


2. O Split de pagamento Pix só pode ser realizado entre contas Efí, com limite máximo de 20 contas para o repasse.


3. Para configurar o webhook, você precisará fazer isso através de uma requisição HTTP utilizando o endpoint específico fornecido pela Efí. Esse processo envolve associar uma chave Pix registrada na sua conta Efí, que é a mesma chave que será utilizada na criação da cobrança, à URL de retorno da sua aplicação.
Você pode seguir o passo a passo detalhado na nossa documentação sobre webhooks. Lá, você encontrará o endpoint que deve ser utilizado para essa configuração.
Além disso, é essencial que você configure o mTLS (Mutual TLS) no seu servidor web para garantir que a comunicação siga os padrões de segurança estabelecidos. Mais detalhes sobre essa configuração podem ser encontrados na seção sobre mTLS na nossa documentação.

Se precisar de mais ajuda, conte com a gente!

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

# #
# Utilize o segundo exemplo, caso queira requerir o certificado para autenticação #
# mútua em apenas uma rota do domínio indicado no VirtualHost. #
# Exemplo: https://www.seu_dominio.com.br/webhook/ #
# #


:443> # Porta HTTPS
#
# ...
#

SSLCertificateFile /caminho_certificado/fullchain_ssl.pem #fullchain associado ao seu certificado SSL do domínio
SSLCertificateKeyFile /caminho_certificado/privkey_ssl.pem #privkey associada ao seu certificado SSL do domínio

#Chave pública da Efí
SSLCACertificateFile /caminho_certificado/chain-pix-prod.crt

# mTLS Efí
SSLVerifyClient none
SSLProtocol TLSv1.2


SSLVerifyClient require
SSLVerifyDepth 3


# Tratando o /pix, redirecionando as requisições sempre para /webhook
Alias "/webhook/pix/" "/var/www/webhook/index.php"
Alias "/webhook/pix" "/var/www/webhook/index.php"

#
# ...
#

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

# #
# Utilize o primeiro exemplo, caso queira requerir o certificado para autenticação #
# mútua em qualquer rota do domínio indicado no VirtualHost. #
# Funciona bem para sub-domínios. Exemplo: https://www.webhook.seu_dominio.com.br #
#
#


:443> # Porta HTTPS
#
# ...
#

SSLCertificateFile /caminho_certificado/fullchain_ssl.pem #fullchain associado ao seu certificado SSL do domínio
SSLCertificateKeyFile /caminho_certificado/privkey_ssl.pem #privkey associada ao seu certificado SSL do domínio

#Chave pública da Efí
SSLCACertificateFile /caminho_certificado/chain-pix-prod.crt

# mTLS Efí
SSLVerifyClient require
SSLVerifyDepth 3

# Tratando o /pix, redirecionando as requisições sempre para /webhook
Alias "/pix/" "/var/www/webhook/index.php"
Alias "/pix" "/var/www/webhook/index.php"

#
# ...
#

# pix
Avatar discord do usuario jessica_efi

jessica_efi

Ver Respostas

Consegue. Em nossa documentação na seção Skip-mTLS, você encontra essa informação.

# pix
Avatar discord do usuario _acb09

_acb09

Ver Respostas

{
"certificate": "CAMINHO_ABSOLUTO/web\\certificates\\efipay\\homologacao-544374-cert.pem",
"clientId": "Client_Id_????",
"clientSecret": "Client_Secret_???",
"debug": false,
"pwdCertificate": "",
"responseHeaders": true,
"sandbox": true,
"timeout": 30,
"headers": {
"x-skip-mtls-checking": true
}
}

# pix
Avatar discord do usuario _acb09

_acb09

Ver Respostas

Boa tarde!
Estou recebendo o seguinte erro ao criar um webhook de pix:

{
"code": 400,
"error": "json_invalido",
"errorDescription": "Parâmetro \".headers['x-skip-mtls-checking']\", deve ser igual a um dos valores predefinidos"
}

Estou usando o SDK, e todos endpoints funcionam (cartão, pix e boleto) porém não consigo gerar o webhook. Ou recebo o erro acima, ou recebo Curl 52 Error.

# pix
Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

Que tipo de servidor você utiliza e como você esta tentando fazer a configuração do mTLS?

# pix
Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

Você configurou o mTLS eu seu servidor?

# pix
Avatar discord do usuario yasmin_efi

yasmin_efi

Ver Respostas

Boa noite @felipenunes0714! Tudo bem? Você configurou o mTLS em seu servidor?

# pix
Avatar discord do usuario felipenunes0714

felipenunes0714

400
json_invalido
Parâmetro ".headers['x-skip-mtls-checking']", deve ser igual a um dos valores predefinidos


$options["headers"] = [
"x-skip-mtls-checking" => false
];

# pix
Avatar discord do usuario felipenunes0714

felipenunes0714

Ver Respostas

me retornou o seguinte erro:


400
json_invalido
Parâmetro ".headers['x-skip-mtls-checking']", deve ser igual a um dos valores predefinidos
{
"Server": [
"nginx"
],
"Date": [
"Tue, 06 Aug 2024 18:59:18 GMT"
],
"Content-Type": [
"application/json; charset=utf-8"
],
"Content-Length": [
"241"
],
"Connection": [
"keep-alive"
],
"x-request-id": [
"xxxx"
],
"Vary": [
"Origin"
],
"Access-Control-Allow-Credentials": [
"true"
],
"ETag": [
"xxx""
]
}

# pix
Avatar discord do usuario felipenunes0714

felipenunes0714


/
Detailed endpoint documentation
https://dev.efipay.com.br/docs/api-pix/webhooks#configurar-o-webhook-pix
/

$autoload = realpath(__DIR__ . "../../../../../../../vendor/autoload.php");
if (!file_exists($autoload)) {
die("Autoload file not found or on path $autoload.");
}
require_once $autoload;

use Efi\Exception\EfiException;
use Efi\EfiPay;

$optionsFile = __DIR__ . "/../../credentials/options.php";
if (!file_exists($optionsFile)) {
die("Options file not found or on path $options.");
}
$options = include $optionsFile;

$options["headers"] = [
"x-skip-mtls-checking" => false
];

$params = [
"chave" => ""
];

$body = [
"webhookUrl" => ""
];


try {
$api = new EfiPay($options);
$response = $api->pixConfigWebhook($params, $body);

if (isset($options["responseHeaders"]) && $options["responseHeaders"]) {
print_r("

" . json_encode($response->body, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "
");
print_r("
" . json_encode($response->headers, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "
");
} else {
print_r("
" . json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "
");
}
} catch (EfiException $e) {
print_r($e->code . "
");
print_r($e->error . "
");
print_r($e->errorDescription) . "
";
if (isset($options["responseHeaders"]) && $options["responseHeaders"]) {
print_r("
" . json_encode($e->headers, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "
");
}
} catch (Exception $e) {
print_r($e->getMessage());
}

# pix
Avatar discord do usuario felipenunes0714

felipenunes0714

Ver Respostas


/
Detailed endpoint documentation
https://dev.efipay.com.br/docs/api-pix/webhooks#configurar-o-webhook-pix
/

$autoload = realpath(__DIR__ . "/../../../vendor/autoload.php");
if (!file_exists($autoload)) {
die("Autoload file not found or on path $autoload.");
}
require_once $autoload;

use Efi\Exception\EfiException;
use Efi\EfiPay;

$optionsFile = __DIR__ . "/../../credentials/options.php";
if (!file_exists($optionsFile)) {
die("Options file not found or on path $options.");
}
$options = include $optionsFile;

$options["headers"] = [
"x-skip-mtls-checking" => false
];

$params = [
"chave" => "12345"
];

$body = [
"webhookUrl" => "www.meulink.com"
];

try {
$api = new EfiPay($options);
$response = $api->pixConfigWebhook($params, $body);

if (isset($options["responseHeaders"]) && $options["responseHeaders"]) {
print_r("

" . json_encode($response->body, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "
");
print_r("
" . json_encode($response->headers, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "
");
} else {
print_r("
" . json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "
");
}
} catch (EfiException $e) {
print_r($e->code . "
");
print_r($e->error . "
");
print_r($e->errorDescription) . "
";
if (isset($options["responseHeaders"]) && $options["responseHeaders"]) {
print_r("
" . json_encode($e->headers, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "
");
}
} catch (Exception $e) {
print_r($e->getMessage());
}

# devs
Avatar discord do usuario nauvaro

nauvaro

Ver Respostas

Boa noite. Eu tenho um site em vps com Apache, Wordpress, plugin do Efí para Woocommerce, tentando configurar o mTLS no Apache mas recebo a falha:
"nome": "webhook_invalido",
"mensagem": "A autenticação de TLS mútuo não está configurada na URL informada"
nas requisições da Api PIX. Eu li vários casos semelhantes aqui, mas não consegui chegar num resultado positivo.

Tenho
SSLEngine On
SSLCertificateFile /www/server/panel/vhost/letsencrypt/meusite.com.br/fullchain.pem
SSLCertificateKeyFile /www/server/panel/vhost/letsencrypt/meusite.com.br/privkey.pem

#Chave pública da Efí
SSLCACertificateFile /www/wwwroot/meusite.com.br/certificate-chain-prod.crt

# mTLS Efí
SSLVerifyClient require
SSLVerifyDepth 3

Alias "/pix/" "/www/wwwroot/meusite.com.br/webhook/index.php"
Alias "/pix" "/www/wwwroot/meusite.com.br/webhook/index.php"

mas as minhas páginas exibem a mensagem "O certificado de login não foi aceito ou não foi fornecido." e se eu tentar

# mTLS Efí
SSLVerifyClient none
SSLProtocol TLSv1.2


SSLVerifyClient require
SSLVerifyDepth 3


as páginas voltam ao normal, menos o caminho /webhook. Nas duas situações a falha webhook_invalido é a mesma. Deu pra perceber que não tenho um conhecimento muito aprofundado na área né? Mas tô tentando e não saio dessa etapa, alguém que já passou pelo mesmo e/ou que conhece a situação poderia me jogar uma luz?

# pix
Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

Nesse caso você provavelmente não irá conseguir configurar o mTLS, para contornar isso você pode seguir estes passos descritos aqui
imagem enviada na mensagem pelo usuario joaolucas_efi