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.
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.
Code
OpenSSL inschakelen
Zet TLSOptions.IOHandler op iohOpenSSL en implementeer vervolgens de OpenSSL-bibliotheken bij je build.