Poradnik – jak rozwiązać problem w PHP: SoapClient::__doRequest(): SSL operation failed with code 1. OpenSSL Error messages: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small

Poradnik – jak rozwiązać problem w PHP: SoapClient::__doRequest(): SSL operation failed with code 1. OpenSSL Error messages: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small

Podczas prac z PHP, szczególnie podczas korzystania z funkcji cURL lub Soap, deweloperzy mogą napotkać problem związany z błędem SSL, który wygląda następująco: SoapClient::__doRequest(): SSL operation failed with code 1. OpenSSL Error messages: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small. W tym poradniku omówimy kroki, które można podjąć, aby skutecznie rozwiązać ten problem.

Krok 1: Ustawienie w konfiguracji OpenSSL

Otwórz plik konfiguracyjny OpenSSL, który zazwyczaj znajduje się pod ścieżką /etc/ssl/openssl.cnf. W pliku tym zmień wartość parametru CipherString na DEFAULT:@SECLEVEL=1.

Przykład:

iniCopy code

CipherString = DEFAULT:@SECLEVEL=1

Krok 2: Dla PHP i cURL

W przypadku korzystania z funkcji cURL w PHP, należy ustawić odpowiednią opcję, która zastosuje ustawienia z kroku 1.

Przykład:

phpCopy code

$ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'DEFAULT:@SECLEVEL=1'); // Dodatkowe opcje cURL...

Krok 3: Dla PHP i SOAP

Jeśli korzystasz z SOAP w PHP, należy dostosować kontekst strumienia (stream context) i przekazać go do klienta SoapClient.

Przykład:

phpCopy code

$opts = array( 'ssl' => array( 'ciphers' => 'DEFAULT@SECLEVEL=1', ) ); $streamContext = stream_context_create($opts); $params = array( 'stream_context' => $streamContext, ); // Inicjalizacja klienta SoapClient $client = new SoapClient(null, array_merge([ 'location' => $url, 'uri' => $url, ], $params));

Jak rozwiązać problem w PHP z błędem SSL? Podsumowanie

Po zastosowaniu powyższych kroków, błąd związany z kluczem SSL powinien zostać pomyślnie rozwiązany. Ważne jest, aby śledzić ewentualne zmiany w konfiguracjach i aktualizacjach, które mogą wpłynąć na działanie aplikacji. Korzystanie z zaktualizowanych i zabezpieczonych wersji bibliotek oraz narzędzi jest niezbędne dla utrzymania bezpieczeństwa aplikacji.

11-04-2022 1071