Backends SSL / TLS

sgcWebSockets incluye cuatro transportes TLS intercambiables tras una sola propiedad, TLSOptions.IOHandler. Elige OpenSSL para la máxima portabilidad, o un backend nativo de la plataforma (Windows SChannel, Android, iOS/macOS) que usa la propia pila TLS del sistema operativo sin ninguna librería OpenSSL que desplegar. Cambiar de backend es una línea de código, nada más cambia.

Cuatro transportes TLS, una sola propiedad

Cada backend se conecta a la misma API TLSOptions. Elige el que encaje con tu plataforma y despliegue, y luego configura TLSOptions.IOHandler.

Comparativa de backends

Plataformas, huella de despliegue, soporte de TLS 1.3 y edición para cada transporte.

Backend Plataformas Librería que desplegar TLS 1.3 Edición
OpenSSL Windows, Linux, macOS, iOS, Android OpenSSL (libssl/libcrypto) Todas las ediciones
SChannel Windows Ninguna (integrado en Windows) (Windows 11/Server 2022+) Professional, Enterprise
TLS de Android Android Ninguna (usa el SO) Enterprise
TLS de Apple iOS, macOS Ninguna (usa el SO) (10.14+/iOS 12+) Enterprise

Elige un backend

Cada transporte tiene su propia página con la configuración completa, código para Delphi y C++Builder, notas de despliegue y detalles de edición.

OpenSSL (iohOpenSSL)

TLS multiplataforma sobre el socket de Indy, disponible en todas las plataformas a las que apunta sgcWebSockets y el backend por defecto en la mayoría. TLS 1.0 a 1.3 completo, la cobertura de cifrados más amplia, CA personalizada, certificados de cliente y ALPN. Despliegas las librerías de runtime de OpenSSL junto con tu aplicación. Incluido en todas las ediciones.

Leer la guía completa →

SChannel (iohSChannel)

La pila TLS nativa de Microsoft (Secure Channel / SSPI), integrada en Windows. Cero despliegue de librerías, sin DLLs de OpenSSL que enviar o parchear, y usa el almacén de certificados de Windows. Solo Windows. Incluido en las ediciones Professional y Enterprise.

Leer la guía completa →

TLS nativo de Android (iohAndroidTLS)

TLS nativo de Android usando el SSLEngine de la plataforma a través de JNI. Sin .so de OpenSSL en tu APK, validación contra el almacén de confianza del sistema Android, TLS 1.3 y ALPN en Android 10 (API 29) y posteriores. Edición Enterprise.

Leer la guía completa →

TLS nativo de Apple (iohAppleTLS)

TLS nativo de Apple para iOS y macOS, sin ningún .dylib de OpenSSL que desplegar. Selecciona automáticamente Network.framework (TLS 1.3) en macOS 10.14+ / iOS 12+ y recurre a Secure Transport (TLS 1.2) en sistemas más antiguos, con confianza del sistema, SNI, CA personalizada, certificado de cliente / mTLS y ALPN. Edición Enterprise.

Leer la guía completa →

Nota sobre ediciones

El TLS nativo de la plataforma, Android (iohAndroidTLS) y Apple (iohAppleTLS), requiere la edición Enterprise. OpenSSL (iohOpenSSL) está incluido en todas las ediciones; SChannel (iohSChannel) está incluido en las ediciones Professional y Enterprise.

Cambia con una sola línea

Los cuatro backends comparten la misma API TLSOptions, así que moverse entre ellos es un único cambio de propiedad. Nada más en tu código tiene que cambiar.

TLS y VerifyCertificate

Activa TLS y alterna la verificación del certificado del par de la misma forma en todos los backends.

RootCertFile

Apunta a una raíz CA personalizada para confiar en una autoridad de certificación privada o autofirmada.

CertFile y Password

Proporciona un certificado de cliente y su contraseña para la autenticación TLS mutua (mTLS).

ALPNProtocols

Anuncia protocolos de aplicación (por ejemplo http/1.1) durante el handshake TLS.

// Same TLSOptions, only the IOHandler line changes per platform.
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;
// Same TLSOptions, only the IOHandler line changes per platform.
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;

TLS nativo, cero OpenSSL que desplegar

Descarga la prueba gratuita y cambia de backend TLS con una sola línea de código.