SSL- / TLS-Backends

sgcWebSockets liefert vier austauschbare TLS-Transporte hinter einer einzigen Eigenschaft, TLSOptions.IOHandler. Wähle OpenSSL für maximale Portabilität oder ein natives Plattform-Backend (Windows SChannel, Android, iOS/macOS), das den eigenen TLS-Stack des Betriebssystems nutzt, ohne OpenSSL-Bibliotheken ausliefern zu müssen. Der Wechsel des Backends ist eine einzige Codezeile, sonst ändert sich nichts.

Vier TLS-Transporte, eine Eigenschaft

Jedes Backend hängt sich an dieselbe TLSOptions-API. Wähle das passende für deine Plattform und Auslieferung, und setze dann TLSOptions.IOHandler.

Backend-Vergleich

Plattformen, Auslieferungsaufwand, TLS-1.3-Unterstützung und Edition für jeden Transport.

Backend Plattformen Auszuliefernde Bibliothek TLS 1.3 Edition
OpenSSL Windows, Linux, macOS, iOS, Android OpenSSL (libssl/libcrypto) Ja Alle Editionen
SChannel Windows Keine (in Windows integriert) Ja (Windows 11/Server 2022+) Professional, Enterprise
Android-TLS Android Keine (nutzt das Betriebssystem) Ja Enterprise
Apple-TLS iOS, macOS Keine (nutzt das Betriebssystem) Ja (10.14+/iOS 12+) Enterprise

Wähle ein Backend

Jeder Transport hat seine eigene Seite mit der vollständigen Einrichtung, Code für Delphi und C++ Builder, Hinweisen zur Auslieferung und Edition-Details.

OpenSSL (iohOpenSSL)

Plattformübergreifendes TLS über Indys Socket, verfügbar auf jeder Plattform, die sgcWebSockets unterstützt, und auf den meisten der Standard. Volles TLS 1.0 bis 1.3, die breiteste Cipher-Abdeckung, eigene CA, Client-Zertifikate und ALPN. Du lieferst die OpenSSL-Laufzeitbibliotheken mit deiner App aus. In jeder Edition enthalten.

Vollständige Anleitung lesen →

SChannel (iohSChannel)

Microsofts nativer TLS-Stack (Secure Channel / SSPI), in Windows integriert. Keine Bibliotheksauslieferung, keine OpenSSL-DLLs zum Mitliefern oder Patchen, und er nutzt den Windows-Zertifikatspeicher. Nur Windows. In den Editionen Professional und Enterprise enthalten.

Vollständige Anleitung lesen →

Natives Android-TLS (iohAndroidTLS)

Android-natives TLS über die SSLEngine der Plattform via JNI. Keine OpenSSL-.so in deiner APK, Validierung gegen den Android-Systemvertrauensspeicher, TLS 1.3 und ALPN ab Android 10 (API 29). Enterprise-Edition.

Vollständige Anleitung lesen →

Natives Apple-TLS (iohAppleTLS)

Apple-natives TLS für iOS und macOS, ohne OpenSSL-.dylib zum Ausliefern. Es wählt auf macOS 10.14+ / iOS 12+ automatisch Network.framework (TLS 1.3) und fällt auf älteren Systemen auf Secure Transport (TLS 1.2) zurück, mit Systemvertrauen, SNI, eigener CA, Client-Zertifikat / mTLS und ALPN. Enterprise-Edition.

Vollständige Anleitung lesen →

Edition-Hinweis

Natives Plattform-TLS, Android (iohAndroidTLS) und Apple (iohAppleTLS), erfordert die Enterprise-Edition. OpenSSL (iohOpenSSL) ist in jeder Edition enthalten; SChannel (iohSChannel) ist in den Editionen Professional und Enterprise enthalten.

Mit einer Zeile wechseln

Alle vier Backends teilen sich dieselbe TLSOptions-API, sodass der Wechsel zwischen ihnen eine einzige Eigenschaftsänderung ist. Sonst muss sich nichts in deinem Code ändern.

TLS & VerifyCertificate

Aktiviere TLS und schalte die Peer-Zertifikatsprüfung auf jedem Backend auf dieselbe Weise um.

RootCertFile

Zeige auf eine eigene CA-Root, um einer privaten oder selbstsignierten Zertifizierungsstelle zu vertrauen.

CertFile & Password

Gib ein Client-Zertifikat und sein Passwort für die wechselseitige TLS-Authentifizierung (mTLS) an.

ALPNProtocols

Kündige Anwendungsprotokolle (zum Beispiel http/1.1) während des TLS-Handshakes an.

// Dieselben TLSOptions, nur die IOHandler-Zeile ändert sich je Plattform.
WSClient.TLS := True;
WSClient.TLSOptions.IOHandler := iohOpenSSL;   // or iohSChannel / iohAndroidTLS / iohAppleTLS
WSClient.TLSOptions.VerifyCertificate := True;
WSClient.TLSOptions.RootCertFile := '';
WSClient.TLSOptions.CertFile := '';
WSClient.TLSOptions.Password := '';
WSClient.TLSOptions.ALPNProtocols.Add('http/1.1');
WSClient.Active := True;
// Dieselben TLSOptions, nur die IOHandler-Zeile ändert sich je Plattform.
WSClient->TLS = true;
WSClient->TLSOptions->IOHandler = iohOpenSSL;   // or iohSChannel / iohAndroidTLS / iohAppleTLS
WSClient->TLSOptions->VerifyCertificate = true;
WSClient->TLSOptions->RootCertFile = "";
WSClient->TLSOptions->CertFile = "";
WSClient->TLSOptions->Password = "";
WSClient->TLSOptions->ALPNProtocols->Add("http/1.1");
WSClient->Active = true;

Natives TLS, kein OpenSSL zum Ausliefern

Lade die kostenlose Testversion herunter und wechsle TLS-Backends mit einer einzigen Codezeile.