Histórico de mensagens sobre ssl em pix

EXIBINDO CONVERSAS RECENTES:

Texto: ssl
Canal: pix
Avatar discord do usuario cleversonmenur

cleversonmenur

Ver Respostas

Mas o secret seria tunelado junto no header. Não vejo forma disso ocorrer. Mas enfim... estou nos finalmente da integração e me deparei com essa limitação. O Heroku faz o hand shake SSL utilizando o Amazon Elastic Load Balancers (ELB). Imagino que essa solução venha impactar muita plataforma que esteja hospedada em ambientes PaaS. Seria muito legal ter uma solução para este cenário. Serviria para mim também.

Avatar discord do usuario cleversonmenur

cleversonmenur

Ver Respostas

Sim. Mas o client cert não garante, na prática, neste cenário, nenhuma segurança a mais do que usar um secret, por exemplo. Todos os dados são tunelados com SSL da mesma forma. Só comentei mesmo pelo fato do tabu que existe quando se fala de certificado. Neste caso, ao meu ver, acaba sendo apenas burocracia.

Avatar discord do usuario alisonoliveira10655

alisonoliveira10655

Ver Respostas

Como eu faria isso? Até porque os certificados SSL do meu domínio vem do LoadBalance, eles não ficam armazenados na máquina.

Avatar discord do usuario lucaspera4486

lucaspera4486

URL url = new URL ("https://api-pix.gerencianet.com.br/v2/webhook/" + CHAVE_PIX);
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("PUT");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Authorization", "Bearer =" + authToken);
conn.setRequestProperty("x-skip-mtls-checking", "true");
conn.setSSLSocketFactory(sslsocketfactory);

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Olá, <@!411338863949381634>.
Você está implementado em PHP certo? Caso esteja utilizando nossa SDK com certificado em formato .p12, será este o problema.
Para realizar as requisições, é necessário converter o certificado para .pem
Ou adicionar o trecho CURLOPT_SSLCERTTYPE => "P12", nas requisições para permitir o formato .p12

Avatar discord do usuario terremoth

terremoth

e nem esse parametro de CURLOPT_SSLKEY

Avatar discord do usuario Eduardo_

Eduardo_

Ver Respostas

Confere se esta enviando algo assim:
CURLOPT_URL => 'https://....',
CURLOPT_PORT => 8443,
CURLOPT_SSLCERT => $codificado,
CURLOPT_SSLKEY => $decodificado,
CURLOPT_CAINFO => $codificado,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => 0,
CURLOPT_FAILONERROR => 1,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => 'POST',

Avatar discord do usuario terremoth

terremoth

Ver Respostas

openssl pkcs12 -in certificado.p12 -out certificado.pem -nodes

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

TLS 1.3 tem uma lista de ciphers mais reduzida, seu OpenSSL tem suporte aos algoritmos previstos no TLS 1.3 ?

Avatar discord do usuario matheus_efi

matheus_efi

Você chegou a incluir em seu Virtual Host as configurações como no exemplo:

## Diretório onde hosts virtuais estão armazenados.

SSLCertificateFile /caminho_certificado/server_ssl.crt.pem
SSLCertificateKeyFile /caminho_certificado/server_ssl.key.pem
SSLVerifyClient require
SSLVerifyDepth 3
SSLCACertificateFile /caminho_certificado/chain-pix-prod.crt

## Se preferir deixar apenas uma rota de sua url para notificações você pode adicionar:

SSLVerifyClient none

SSLVerifyClient require
SSLVerifyDepth 3

Avatar discord do usuario edson2387

edson2387

esse certificado não seria que esta configurado no ssl do httpd conf.d

Avatar discord do usuario guilherme_efi

guilherme_efi

Entendido

:443>
ServerAdmin [email protected]
DocumentRoot /var/www/market4u_dev2/
ServerAlias m-dev2.market4u.com.br

SSLCertificateFile /etc/pki/tls/certs/localhost.crt # Este não parece estar referenciando o arquivo correto
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key # Este não parece estar referenciando o arquivo correto
SSLCACertificateFile /var/www/market4u_dev2/gerencianet/chain-pix-prod.crt # Ok, este é a chave publica da GN para que ocorra o "Hand-Shake"

SSLVerifyClient none # Adicione isto fora do

SSLVerifyClient require
SSLVerifyDepth 3


Nos parâmetros, SSLCertificateFile e SSLCertificateKeyFile, você irá fornecer o caminho da chave privada server_ssl.key.pem e uma pública server_ssl.crt.pem da sua certificadora SSL do seu domínio. Eles possuem extensão .pem, como pode ver neste exemplo que dei: https://discord.com/channels/775322853884821504/775328670784159744/804760929136541767

Avatar discord do usuario edson2387

edson2387

:443>
ServerAdmin [email protected]
DocumentRoot /var/www/market4u_dev2/
ServerAlias m-dev2.market4u.com.br

SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCACertificateFile /var/www/market4u_dev2/gerencianet/chain-pix-prod.crt


SSLVerifyClient require
SSLVerifyDepth 3

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Boa tarde, <@!802052811718262814>!
Tente seguir estes passos, que estão mais detalhados par aconfigurar o Apache.
Primeiramente você deve acessar o arquivo de configuração do apache, geralmente fica em /etc/apache2/mods-enabled
Nele você irá fornecer o caminho da chave privada server_ssl.key.pem e uma pública server_ssl.crt.pem da sua certificadora SSL do seu domínio.

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

Neste mesmo arquivo do apache, adicione o caminho para o arquivo com a chave pública da Gerencianet para que ocorra o "Hand-Shake". Este arquivo você mesmo criará com a nossa chave (https://pix.gerencianet.com.br/webhooks/chain-pix-sandbox.crt - Produção) e salvará em um diretório de sua escolha.
SSLCACertificateFile /caminho_certificado/chain-pix-prod.crt

Se preferir deixar apenas uma rota de sua url para notificações, ex http://seudominio.com.br/webhook" class="link-msg">http://seudominio.com.br/webhook (as notificações serão enviadas para esta rota) você pode adicionar:
SSLVerifyClient none

 SSLVerifyClient require -- Indica que todas as requisições nesta rota irão requerer um certificado para o "Hand-Shake"
 SSLVerifyDepth 3

Se preferir que todas as notificações sejam enviadas para sua URL sem um subdiretório, ex http://seudominio.com.br, basta adicionar as seguintes informações
SSLVerifyClient require
SSLVerifyDepth 3

Com basicamente isto configurado no Apache, você realiza a requisição da rota PUT/v2/webhook/:chave passando no body { "webhookUrl": "http://seudominio.com.br/webhook"; } que seu webhook estará cadastrado para sua chave Pix. A partir daí, as cobranças Pix criadas com sua chave que estejam associados a um txid serão notificados em sua URL.

Para confirmar que seu webhook foi cadastrado, basta consumir a rota GET /v2/webhook/:chave para exibir informações acerca do webook pix vinculado à sua chave

Avatar discord do usuario rogeriocruzsousa

rogeriocruzsousa

Ver Respostas

Esta acontecendo a mesma coisa aqui, só a linha abaixo como do exemplo não funciona em produção, somente em localhost.

System.setProperty("javax.net.ssl.keyStore", certificado.p12;

Alguém sabe se precisa colocar parâmetros extras no java também?

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

<@!375094642238029824> Tente seguir estes passos, que estão mais detalhados.
Primeiramente você deve acessar o arquivo de configuração do apache, geralmente fica em /etc/apache2/mods-enabled
Nele você irá fornecer o caminho da chave privada server_ssl.key.pem e uma pública server_ssl.crt.pem da sua certificadora SSL do seu domínio.

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

Neste mesmo arquivo do apache, adicione o caminho para o arquivo com a chave pública da Gerencianet para que ocorra o "Hand-Shake". Este arquivo você mesmo criará com a nossa chave (https://pix.gerencianet.com.br/webhooks/chain-pix-sandbox.crt - Produção) e salvará em um diretório de sua escolha.
SSLCACertificateFile /caminho_certificado/chain-pix-prod.crt

Se preferir deixar apenas uma rota de sua url para notificações, ex http://seudominio.com.br/webhook" class="link-msg">http://seudominio.com.br/webhook (as notificações serão enviadas para esta rota) você pode adicionar:
SSLVerifyClient none

 SSLVerifyClient require -- Indica que todas as requisições nesta rota irão requerer um certificado para o "Hand-Shake"
 SSLVerifyDepth 3

Se preferir que todas as notificações sejam enviadas para sua URL sem um subdiretório, ex http://seudominio.com.br, basta adicionar as seguintes informações
SSLVerifyClient require
SSLVerifyDepth 3

Com basicamente isto configurado no Apache, você realiza a requisição da rota PUT/v2/webhook/:chave passando no body { "webhookUrl": "http://seudominio.com.br/webhook"; } que seu webhook estará cadastrado para sua chave Pix. A partir daí, as cobranças Pix criadas com sua chave que estejam associados a um txid serão notificados em sua URL.

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Isso, <@!798679248633856000>.
Especificando o caminho do certificado em ssl_client_certificate, então é realizado a verificação do certificado da Gerencianet com o que você inseriu, e o resultado da verificação é armazenado na variável $ssl_client_verify
E você especifica o path que quer fazer o rewrite

Avatar discord do usuario ribas2555

ribas2555

Ver Respostas

serio que é só isso?

configuro o nginx pra servir minha api, e especifico que em algum path tipo o webhook ele tem que verificar o client?

$ssl_client_verify
returns the result of client certificate verification: “SUCCESS”, “FAILED:reason”, and “NONE” if a certificate was not present;


e coloco o path no ssl_client_certificate ?

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Claro! Essa chave pública da Gerencianet você configura em seu servidor para realizar o "Hand-Shake" e assim a comunicação ser estabelecida.
Para Nginx será informado no parâmetro ssl_client_certificate conforme apontado
imagem enviada na mensagem pelo usuario guilherme_efi

Avatar discord do usuario diegohenrique1989

diegohenrique1989

Ver Respostas

ja tenho o ssl ativado para ter o https