Backend TLS OpenSSL

OpenSSL (iohOpenSSL) to wieloplatformowy transport TLS dla sgcWebSockets. Działa na każdej platformie obsługiwanej przez bibliotekę i jest domyślny na większości z nich, z najszerszym pokryciem protokołów i szyfrów spośród wszystkich backendów. Włącz go, ustawiając TLSOptions.IOHandler na iohOpenSSL, a następnie wdróż biblioteki uruchomieniowe OpenSSL wraz z aplikacją.

← Wszystkie backendy TLS

OpenSSL (iohOpenSSL)

Wieloplatformowy TLS zaimplementowany na gnieździe Indy, dostępny na każdej platformie obsługiwanej przez sgcWebSockets.

OpenSSL to wieloplatformowa implementacja TLS, którą sgcWebSockets nakłada na gniazdo Indy. Jest dostępna na Windows, Linux, macOS, iOS i Android i na większości z nich jest domyślnym backendem. Wybierz OpenSSL, gdy potrzebujesz identycznego zachowania TLS na każdej platformie lub gdy zależysz od funkcji udostępnianej wyłącznie przez OpenSSL.

Backend obejmuje TLS od 1.0 do 1.3 z najszerszym wyborem zestawów szyfrów spośród wszystkich transportów sgcWebSockets. Możesz zaufać prywatnemu lub samopodpisanemu urzędowi za pomocą niestandardowego urzędu CA (RootCertFile), przedstawić certyfikat klienta dla wzajemnego TLS oraz ogłaszać protokoły aplikacyjne, takie jak http/1.1, za pośrednictwem ALPN. Ponieważ wszystkie cztery backendy korzystają z tego samego API TLSOptions, kod napisany pod OpenSSL przechodzi na backend natywny przez zmianę wyłącznie linii IOHandler.

Kompromisem jest wdrożenie. OpenSSL to zależność zewnętrzna, więc dostarczasz jego biblioteki uruchomieniowe wraz z aplikacją i utrzymujesz je załatane. Na Windows oznacza to libssl-3.dll i libcrypto-3.dll, na Linux i Android odpowiednie pliki .so, a na platformach Apple pliki .dylib. Jeśli chcesz natywny TLS bez bibliotek do wdrożenia, przyjrzyj się SChannel na Windows lub natywnym backendom Android i Apple.

Włącz OpenSSL

Ustaw TLSOptions.IOHandler na iohOpenSSL, a następnie wdróż biblioteki OpenSSL ze swoją kompilacją.

uses
  sgcWebSocket, sgcWebSocket_Types;
// ...
WSClient.TLS := True;
WSClient.TLSOptions.IOHandler := iohOpenSSL;
WSClient.TLSOptions.VerifyCertificate := True;
WSClient.TLSOptions.RootCertFile := '';   // opcjonalny niestandardowy CA (PEM/DER)
WSClient.TLSOptions.CertFile := '';       // opcjonalny certyfikat klienta dla mTLS
WSClient.TLSOptions.Password := '';
WSClient.TLSOptions.ALPNProtocols.Add('http/1.1');
WSClient.Host := 'your.server.com';
WSClient.Port := 443;
WSClient.Active := True;
WSClient->TLS = true;
WSClient->TLSOptions->IOHandler = iohOpenSSL;
WSClient->TLSOptions->VerifyCertificate = true;
WSClient->TLSOptions->RootCertFile = "";   // opcjonalny niestandardowy CA (PEM/DER)
WSClient->TLSOptions->CertFile = "";       // opcjonalny certyfikat klienta dla mTLS
WSClient->TLSOptions->Password = "";
WSClient->TLSOptions->ALPNProtocols->Add("http/1.1");
WSClient->Host = "your.server.com";
WSClient->Port = 443;
WSClient->Active = true;

Dostarczanie bibliotek OpenSSL

OpenSSL to zależność zewnętrzna, więc biblioteki uruchomieniowe wędrują z aplikacją na każdej platformie.

Windows

Wdróż libssl-3.dll i libcrypto-3.dll obok pliku wykonywalnego (kompilacja 32-bitowa lub 64-bitowa, zgodna z Twoim celem).

Linux i Android

Dołącz odpowiednie pliki .so libssl i libcrypto, a następnie wczytaj je ze ścieżki dostępnej dla aplikacji w czasie wykonywania.

macOS, iOS

Dostarcz pliki .dylib libssl i libcrypto z pakietem aplikacji, aby środowisko uruchomieniowe OpenSSL było dostępne na urządzeniu.

Utrzymuj je załatane

Ponieważ to Ty wdrażasz biblioteki, jesteś odpowiedzialny za ich aktualizację po wydaniu poprawki bezpieczeństwa.

Uwaga o edycji

OpenSSL (iohOpenSSL) jest dostępny w każdej edycji sgcWebSockets. Zobacz macierz funkcji, aby poznać pełne zestawienie.

Wieloplatformowy TLS w jednej linii

Pobierz bezpłatną wersję próbną i dodaj TLS oparty na OpenSSL do swoich aplikacji Delphi i C++ Builder.