OpenSSL (iohOpenSSL) ist der plattformübergreifende TLS-Transport für sgcWebSockets. Er läuft auf jeder Plattform, die die Bibliothek unterstützt, und ist auf den meisten der Standard, mit der breitesten Protokoll- und Cipher-Abdeckung aller Backends. Aktiviere ihn, indem du TLSOptions.IOHandler auf iohOpenSSL setzt, und liefere dann die OpenSSL-Laufzeitbibliotheken neben deiner Anwendung aus.
Plattformübergreifendes TLS, umgesetzt über Indys Socket, verfügbar auf jeder Plattform, die sgcWebSockets unterstützt.
OpenSSL ist die plattformübergreifende TLS-Implementierung, die sgcWebSockets über Indys Socket legt. Sie ist auf Windows, Linux, macOS, iOS und Android verfügbar und auf den meisten davon das Standard-Backend. Wähle OpenSSL, wenn du auf jeder Plattform identisches TLS-Verhalten brauchst oder wenn du von einer Fähigkeit abhängst, die nur OpenSSL bereitstellt.
Das Backend deckt TLS 1.0 bis TLS 1.3 mit der breitesten Cipher-Suite-Auswahl aller sgcWebSockets-Transporte ab. Du kannst einer privaten oder selbstsignierten Zertifizierungsstelle mit einer eigenen CA-Root (RootCertFile) vertrauen, ein Client-Zertifikat für wechselseitiges TLS vorlegen und Anwendungsprotokolle wie http/1.1 über ALPN ankündigen. Da sich alle vier Backends dieselbe TLSOptions-API teilen, lässt sich gegen OpenSSL geschriebener Code auf ein natives Backend übertragen, indem nur die IOHandler-Zeile geändert wird.
Der Kompromiss ist die Auslieferung. OpenSSL ist eine externe Abhängigkeit, also lieferst du seine Laufzeitbibliotheken mit deiner Anwendung aus und hältst sie gepatcht. Unter Windows bedeutet das libssl-3.dll und libcrypto-3.dll, unter Linux und Android die passenden .so-Dateien und auf Apple-Plattformen die .dylib-Dateien. Wenn du natives TLS ohne auszuliefernde Bibliotheken willst, sieh dir SChannel unter Windows oder die nativen Android- und Apple-Backends an.
Code
OpenSSL aktivieren
Setze TLSOptions.IOHandler auf iohOpenSSL und liefere dann die OpenSSL-Bibliotheken mit deinem Build aus.