OpenSSL TLS-backend

OpenSSL (iohOpenSSL) is het cross-platform TLS-transport voor sgcWebSockets. Het draait op elk platform dat de bibliotheek ondersteunt en is de standaard op de meeste ervan, met de breedste protocol- en cipher-dekking van alle backends. Schakel het in door TLSOptions.IOHandler op iohOpenSSL te zetten en implementeer vervolgens de OpenSSL-runtime-bibliotheken samen met je applicatie.

← Alle TLS-backends

OpenSSL (iohOpenSSL)

Cross-platform TLS geïmplementeerd over de socket van Indy, beschikbaar op elk platform dat sgcWebSockets ondersteunt.

OpenSSL is de cross-platform TLS-implementatie die sgcWebSockets bovenop de socket van Indy plaatst. Het is beschikbaar op Windows, Linux, macOS, iOS en Android, en is op de meeste ervan de standaardbackend. Kies OpenSSL wanneer je identiek TLS-gedrag op elk platform nodig hebt, of wanneer je afhankelijk bent van een mogelijkheid die alleen OpenSSL biedt.

De backend dekt TLS 1.0 tot en met TLS 1.3 met de breedste cipher-suite-selectie van alle sgcWebSockets-transports. Je kunt een privé- of zelfondertekende autoriteit vertrouwen met een custom CA-root (RootCertFile), een clientcertificaat presenteren voor mutual TLS, en applicatieprotocollen zoals http/1.1 adverteren via ALPN. Omdat alle vier backends dezelfde TLSOptions-API delen, verhuist code geschreven voor OpenSSL naar een native backend door alleen de IOHandler-regel te wijzigen.

De afweging is de implementatie. OpenSSL is een externe afhankelijkheid, dus je verzendt de runtime-bibliotheken met je applicatie en houdt ze gepatcht. Op Windows betekent dat libssl-3.dll en libcrypto-3.dll, op Linux en Android de bijbehorende .so-bestanden, en op Apple-platforms de .dylib-bestanden. Wil je native TLS zonder bibliotheken te implementeren, kijk dan naar SChannel op Windows of de native Android- en Apple-backends.

OpenSSL inschakelen

Zet TLSOptions.IOHandler op iohOpenSSL en implementeer vervolgens de OpenSSL-bibliotheken bij je build.

uses
  sgcWebSocket, sgcWebSocket_Types;
// ...
WSClient.TLS := True;
WSClient.TLSOptions.IOHandler := iohOpenSSL;
WSClient.TLSOptions.VerifyCertificate := True;
WSClient.TLSOptions.RootCertFile := '';   // optional custom CA (PEM/DER)
WSClient.TLSOptions.CertFile := '';       // optional client cert for 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 = "";   // optional custom CA (PEM/DER)
WSClient->TLSOptions->CertFile = "";       // optional client cert for mTLS
WSClient->TLSOptions->Password = "";
WSClient->TLSOptions->ALPNProtocols->Add("http/1.1");
WSClient->Host = "your.server.com";
WSClient->Port = 443;
WSClient->Active = true;

De OpenSSL-bibliotheken meeleveren

OpenSSL is een externe afhankelijkheid, dus de runtime-bibliotheken reizen op elk platform mee met je applicatie.

Windows

Implementeer libssl-3.dll en libcrypto-3.dll naast je uitvoerbaar bestand (de 32-bits of 64-bits build die bij je target past).

Linux & Android

Bundel de bijbehorende libssl- en libcrypto-.so-bestanden en laad ze vervolgens vanaf een pad dat je applicatie tijdens runtime kan bereiken.

macOS, iOS

Verzend de libssl- en libcrypto-.dylib-bestanden met de app-bundel zodat de OpenSSL-runtime beschikbaar is op het apparaat.

Houd ze gepatcht

Omdat de bibliotheken door jou worden geïmplementeerd, ben je verantwoordelijk voor het bijwerken ervan zodra een beveiligingsfix wordt uitgebracht.

Editie-opmerking

OpenSSL (iohOpenSSL) is inbegrepen in elke editie van sgcWebSockets. Zie de feature matrix voor de volledige uitsplitsing.

Cross-platform TLS in één regel

Download de gratis proefversie en voeg OpenSSL-gebaseerde TLS toe aan je Delphi- en C++Builder-apps.