Histórico de mensagens sobre ssl

EXIBINDO CONVERSAS RECENTES:

Texto: ssl
# pix
Avatar discord do usuario roguitar88

roguitar88

Ver Respostas

$config = [
"certificado" => "/etc/certs-gerencianet/olimppiuspix.crt.pem",
"client_id" => $this->clientId,
"client_secret" => $this->clientSecret
];
$autorizacao = base64_encode($config["client_id"] . ":" . $config["client_secret"]);

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-pix-h.gerencianet.com.br/oauth/token", // Rota base, homologação ou produção
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"grant_type": "client_credentials"}',
CURLOPT_SSLCERT => $config["certificado"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $autorizacao",
"Content-Type: application/json"
),
));

$response = curl_exec($curl);

curl_close($curl);

echo "

";
echo $response; //print_r($response);
echo "
";
// echo "Que que está acontecendo";

# pix
Avatar discord do usuario elsonlima0580

elsonlima0580

esse modelo então não é suficiente?
$config = [
"certificado" => "./certificado.pem",
"client_id" => "YOUR-CLIENT-ID",
"client_secret" => "YOUR-CLIENT-SECRET"
];
$autorizacao = base64_encode($config["client_id"] . ":" . $config["client_secret"]);

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-pix-h.gerencianet.com.br/oauth/token", // Rota base, homologação ou produção
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"grant_type": "client_credentials"}',
CURLOPT_SSLCERT => $config["certificado"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $autorizacao",
"Content-Type: application/json"
),
));

$response = curl_exec($curl);

curl_close($curl);

echo "

";
echo $response;
echo "
";

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Tente colocar o trecho SSLCACertificateFile /etc/ssl/certs/chain-pix-prod.crt fora do

# pix
Avatar discord do usuario ro.dri.go.sil.va

ro.dri.go.sil.va

Ver Respostas

Your SSL library does not have support for per-directory CA

# pix
Avatar discord do usuario ro.dri.go.sil.va

ro.dri.go.sil.va

Ver Respostas

Não consigo dar restart no apache com a configuração
:443>

Options Indexes FollowSymLinks
AllowOverride All
Require all granted

ServerAdmin [email protected]
ServerName pix.meudominio.com.br
DocumentRoot /var/www/pix
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =pix.meudominio.com.br
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
SSLCertificateFile /etc/letsencrypt/live/pix.meudominio.com.br/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/pix.meudominio.com.br/privkey.pem

SSLVerifyClient require
SSLVerifyDepth 3
SSLCACertificateFile /etc/ssl/certs/chain-pix-prod.crt


# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

No Apache eu achava que era Directory, mas é Location mesmo:

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

SSLVerifyClient none

SSLVerifyClient require
SSLVerifyDepth 3

# pix
Avatar discord do usuario ro.dri.go.sil.va

ro.dri.go.sil.va

Ver Respostas

adicionei e agora a página da o erro ERR_BAD_SSL_CLIENT_AUTH_CERT

# pix
Avatar discord do usuario ezequielsp

ezequielsp

Ver Respostas

Tens que adicionar no arquivo de conf meudominio-le-ssl.conf

SSLVerifyClient require
SSLCACertificateFile "/etc/ssl/certs/chain-pix-prod.crt"
SSLVerifyDepth 3

# pix
Avatar discord do usuario ro.dri.go.sil.va

ro.dri.go.sil.va

:80>

Options Indexes FollowSymLinks
AllowOverride All
Require all granted

ServerAdmin [email protected]
ServerName pix.meudominio.com.br
DocumentRoot /var/www/pix
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =pix.meudominio.com.br
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
SSLCertificateFile /etc/letsencrypt/live/pix.meudominio.com.br/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/pix.meudominio.com.br/privkey.pem
SSLVerifyClient require
SSLVerifyDepth 3
SSLCACertificateFile /etc/ssl/certs/chain-pix-prod.crt

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Também do <@!781928420757864468> :
// modelo funcional
public void GerarTokenGN(string client_id, string client_secret)
{
// força o uso do protocolo TLS, caso o protocolo padrão seja SSL ou outro protocolo
//ServicePointManager.Expect100Continue = true;
//ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3;

X509Certificate2 uidCert = new X509Certificate2("NOME_DO_CERTIFICADO.p12", "");
var client = new RestSharp.RestClient("https://api-pix-h.gerencianet.com.br/oauth/token");
client.ClientCertificates = new X509CertificateCollection() { uidCert };
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Basic " + System.Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", client_id, client_secret))));
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\"grant_type\":\"client_credentials\",\"client_id\":\"" + client_id + "\",\"client_secret\":\"" + client_secret + "\"}", ParameterType.RequestBody);
IRestResponse restResponse = client.Execute(request);
string response = restResponse.Content;

Console.WriteLine(response);
}

# pix
Avatar discord do usuario brunodelara

brunodelara

erro do apache "SSL routines:SSL_verify_client_post_handshake:extension not received"

# pix
Avatar discord do usuario Deleted User

Deleted User

Ver Respostas

No PHP use o openssl_pkcs12_read

# pix
Avatar discord do usuario guilherme_eyhe3189

guilherme_eyhe3189

fui converter o certificado usando o openssl.exe e me pediu uma senha do certificado

# pix
Avatar discord do usuario Deleted User

Deleted User

Ver Respostas

openssl.exe

# pix
Avatar discord do usuario joao_efi

joao_efi

Ver Respostas

Oi <@!275668239324020739> tudo bem? Para converter o certificado .p12 para .pem basta executar o comando abaixo!
openssl pkcs12 -in certificado.p12 -out certificado.pem -nodes
Vale ressaltar que o comando deve ser executado em ambiente linux! 😄

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Para quem não está conseguindo gerar o Token a partir do exemplo C# da Gerencianet.
No exemplo da Gerencianet tem uma variável "cities" contendo o client_id e client_secret, mas nunca é usada.
O Authorization está fixo, mas você deve substituí-lo pelo authorization base64 gerado a partir de seu client_id e client_secret.
O parameter "application/json" tem o grant_type=client_credentials, mas não tem as credenciais no body.
Certifique-se de estar usando .Net Framework 4.6.1 ou superior. Versões anteriores do .Net Framework não utilizam TLS por padrão.
Para versão anterior a 4.6.1 do .Net Framework, descomente as duas primeiras linhas do código

Atenção: atente-se ao ambiente de homologação/produção e faça a alteração necessária.
// modelo funcional
public void GerarTokenGN(string client_id, string client_secret)
{
// força o uso do protocolo TLS, caso o protocolo padrão seja SSL ou outro protocolo
//ServicePointManager.Expect100Continue = true;
//ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3;

X509Certificate2 uidCert = new X509Certificate2("NOME_DO_CERTIFICADO.p12", "");
var client = new RestSharp.RestClient("https://api-pix-h.gerencianet.com.br/oauth/token");
client.ClientCertificates = new X509CertificateCollection() { uidCert };
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Basic " + System.Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", client_id, client_secret))));
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\"grant_type\":\"client_credentials\",\"client_id\":\"" + client_id + "\",\"client_secret\":\"" + client_secret + "\"}", ParameterType.RequestBody);
IRestResponse restResponse = client.Execute(request);
string response = restResponse.Content;

Console.WriteLine(response);
}

# pix
Avatar discord do usuario marcosfilho8113

marcosfilho8113

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

SSLCertificateFile ../ssl/certs/certificado.crt
SSLCertificateKeyFile ../certs/certificado_key.key
SSLVerifyClient require
SSLVerifyDepth 3
SSLCACertificateFile ../ssl/certs/chain-pix-prod.crt

# pix
Avatar discord do usuario didio4130

didio4130

Ver Respostas

Olá Pessoal, boa tarde!
Beixei a SDK php para fazerum teste mas estou passando por problemas com o certificado. Erro abaixo:

Fatal error: Uncaught Error: cURL error 58: could not load PEM client certificate, OpenSSL error error:0200100D:system library:fopen:Permission denied, (no key found, wrong pass phrase, or wrong file format?) (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) in /var/www/localhost/htdocs/gerencianet/examples/pix/oauth/generateAuth.php:29 Stack trace: #0 {main} thrown in /var/www/localhost/htdocs/gerencianet/examples/pix/oauth/generateAuth.php on line 29