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.