PHP HTTP_Request2 i połączenie TLS1.3

0

Hej,
Mam problem z połączeniem TLS1.3 z wykorzystaniem HTTP_Request2. Czy ktoś przerabiał ten temat i może podzielić się wiedzą czy to działa ?

2

Może pokaż kod i opisz dokładniej problem.
Jaka wersja PHP i czy masz tam wsparcie dla TLS 1.3 w OpenSSL

0

@jurek1980:
No nie ma problemu
$request = new HTTP_Request2();
$certificate=CERTYFICATE_LINK;
$request->setUrl($url_isof."/api/oauth/token.hdbn");
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
'protocol_version'=>'1.2',
'store_body' => TRUE,
'timeout'=>'0',
'connect_timeout'=>'10',
'ssl_verify_host'=>false,
'ssl_local_cert' => $certificate,
'ssl_passphrase' => CERTYFICATE_PASS,
'follow_redirects' => TRUE
));
$auth_data = array(
'client_id'=> CLIENT_ID,
'client_secret'=>CLIENT_SECRET
);
$auth_type = array(
'grant_type' => 'client_credentials'
);
$auth=base64_encode(sprintf('%s:%s', $auth_data['client_id'], $auth_data['client_secret']));
$auth_type = json_encode($auth_type);
$request->setHeader(array(
'Authorization' => 'Basic '.$auth,
'Content-Type' => 'application/json',
'Content-Length'=> strlen($auth_type)
));
$request->setBody($auth_type);
$response = $request->send();

PHP 7.4.13
Registered Stream Socket Transports tcp, udp, unix, udg, ssl, sslv3, tls, tlsv1.0, tlsv1.1, tlsv1.2, tlsv1.3

openssl ciphers -v | grep TLSv1.3
TLS_AES_256_GCM_SHA384 TLSv1.3 Kx=any Au=any Enc=AESGCM(256) Mac=AEAD
TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any Au=any Enc=CHACHA20/POLY1305(256) Mac=AEAD
TLS_AES_128_GCM_SHA256 TLSv1.3 Kx=any Au=any Enc=AESGCM(128) Mac=AEAD

2

I jak zmieniasz na 1.3
protocol_version'=>'1.2 to jaki jest efekt? Nie korzystałem z tej paczki, no ale pewnie w sumie na końcu wykorzystuje to cURLa i gdzieś ten parametr musi być zdekodowane na stałą lub wartość numeryczną.

0

@jurek1980: @jurek1980: To służy do czegoś innego
protocol_version - HTTP protocol version to use, '1.0' or '1.1'

3

Taaak... :)
Zobacz na dokumntacje.
https://pear.php.net/package/HTTP_Request2/docs/latest/HTTP_Request2/HTTP_Request2_Adapter_Curl.html
Może trzeba nadpisać ten adapter żeby przekazywał też.
CURLOPT_SSLVERSION

1

@jurek1980: Wydaje mi się że to nie korzysta domyślnie z tego adaptera, bo skasowanie pliku z tym adapterem nie wywołuje nawet błędu. Być może uruchomienie połaczenia z tym adapterem rozwiąże problem

1

Tylko i tak musisz tam nadpisać brakujący parametr.

1 użytkowników online, w tym zalogowanych: 0, gości: 1