Histórico de mensagens sobre mtls

EXIBINDO CONVERSAS RECENTES:

Texto: mtls
# pix
Avatar discord do usuario douglascosta9242

douglascosta9242

Ver Respostas

Boa tarde pessoal tudo bem? Tenho um problema em relação ao WebHook, alguém já configurou o certificado mTLS na Azure?

# pix
Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

Boa tarde, <@!666766641358438413>. Para receber notificações de Pix enviados e Pix recebidos é necessário tem um webhook associado a sua chave Pix, o webhook é cadastrado utilizando o endpoint (PUT /v2/webhook/:chave) e os detalhes para a configuração do servidor e sobre o mTLS você encontra aqui: https://dev.gerencianet.com.br/docs/api-pix-endpoints#section-webhooks

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

As informações dos pagamentos recebidos, sim. Isso inclui quantas vendas você fez e quanto arrecadou, mas dados de clientes só se você pedir alguma coisa no campo solicitacaoPagador. Mas você recebe também, pois o mtls.pix.ae reencaminha.

# pix
Avatar discord do usuario joaobatista4234

joaobatista4234

Ver Respostas

mais as informações não iria para o site https://mtls.pix.ae ?

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Uma alternativa é o pix.ae do @anoni_mato:

Pra quem tem dificuldades de implementar os webhooks por falta de suporte em hospedagem compartilhada para configurar mTLS, o Pix.ae agora oferece proxy de callbacks com mTLS.

Pra usar é muito simples: é só prefixar o seu domínio com mtls.pix.ae/. Por exemplo:

Para: https://exemplo.com.br/webhookpix
Use: https://mtls.pix.ae/exemplo.com.br/webhookpix

Obs: no ambiente de homologação, prefixe com mtls-h.pix.ae/

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O problema é não haver suporte aparente do Firebase ou de qualquer recurso do GCE para mTLS. Eu já alertei uma pessoa do Google que o BACEN está pondo mTLS em tudo por aqui (Pix, Open Banking).

# 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 matheus_efi

matheus_efi

Ver Respostas

Essa falha é referente a tentativa de cadastro em seu webhook, no entanto, não foi possível verificar o certificado (CA) da Gerencianet que pode ser obtido por este link (https://pix.gerencianet.com.br/webhooks/chain-pix-prod.crt) no caso de produção. Recomendo verificar a documentação do mTLS e os exemplos disponibilizados (https://dev.gerencianet.com.br/docs/api-pix-endpoints#section-entendendo-o-padr-o-mtls).
Em resumo, a Gerencianet faz 2 requisições ao seu servidor, a primeira sem verificar o certificado e a segunda verificando. Seu servidor deve estar configurado para rejeitar a primeira e aceitar a segunda, fazendo um "hand-shake"

# 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 .teomacedo

.teomacedo

Olá!
Não estou conseguindo fazer funcionar seguindo a referencia desse segundo exemplo proposto na documentação.


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

ServerName dominiodetestes.com.br
SSLCertificateFile /etc/letsencrypt/live/pixspeak.com.br/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/pixspeak.com.br/privkey.pem

# mTLS Gerencianet
SSLVerifyClient none

SSLVerifyClient require
SSLVerifyDepth 3


#
# ...
#



o retorno que recebo é o seguinte:

{
"nome": "webhook_invalido",
"mensagem": "A URL informada respondeu com o código HTTP 403"
}

____
porem se eu uso o primeiro modelo de exemplo que é indicado para sub-dominios, então funciona.
Enfim, preciso configurar o apache para que os certificados sejam solicitados apenas quando a url for (dominiodetestes.com.br/webhook), mas assim como comentado acima, mesmo usando o modelo da documentação, não estou conseguindo. O que será que estou fazendo de errado?

# cartões
Avatar discord do usuario Deleted User

Deleted User

Ver Respostas

Uma última pergunta, e quanto ao campo validateMtls? O que é MTLS?

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Não configura. Use um outro servidor para atender essa conexão, que pode ser um VPS seu mesmo, o API Gateway da AWS, o mtls.pix.ae do @anoni_mato...

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

# #
# 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: 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

# mTLS Gerencianet
SSLCACertificateFile /caminho_certificado/chain-pix-prod.crt #Chave pública da Gerencianet
SSLVerifyClient require
SSLVerifyDepth 3

#
# ...
#




# #
# 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: 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

# mTLS Gerencianet
SSLVerifyClient none

SSLVerifyClient require
SSLVerifyDepth 3


#
# ...
#

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Sim, o requisito de mTLS é checado também na homologação. O que é bom, quanto mais perto da produção sem ser produção, melhor.

# pix
Avatar discord do usuario ajcastello

ajcastello

certo, estou pesquisando para entender melhor como aplicar o mTLS ao Firebase, porém com dificuldade, uma vez que ele possui uma lib para as functions e já aplica um SSL.

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

mTLS é necessário sempre, independente do seu ambiente.

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Para definir qual URL será o seu endereço de retorno, você deverá consumir o endpoint PUT /v2/webhook/:chave_pix passando no body da requisição o parâmetro webhookUrl com sua URL.

Complementando, é importante que em seu domínio que representa o seu servidor, esteja configurado a chave pública da Gerencianet para que ocorra a autenticação mútua (mTLS).
Você encontra mais detalhes em: https://dev.gerencianet.com.br/docs/api-pix-endpoints#section-webhooks