Backend TLS OpenSSL

OpenSSL (iohOpenSSL) es el transporte TLS multiplataforma de sgcWebSockets. Funciona en todas las plataformas a las que apunta la librería y es el backend por defecto en la mayoría de ellas, con la cobertura de protocolos y cifrados más amplia de todos los backends. Actívalo asignando iohOpenSSL a TLSOptions.IOHandler, y luego despliega las librerías de runtime de OpenSSL junto con tu aplicación.

← Todos los backends TLS

OpenSSL (iohOpenSSL)

TLS multiplataforma implementado sobre el socket de Indy, disponible en todas las plataformas a las que apunta sgcWebSockets.

OpenSSL es la implementación de TLS multiplataforma que sgcWebSockets construye sobre el socket de Indy. Está disponible en Windows, Linux, macOS, iOS y Android, y es el backend por defecto en la mayoría de ellos. Elige OpenSSL cuando necesites un comportamiento TLS idéntico en todas las plataformas, o cuando dependas de una capacidad que solo OpenSSL expone.

El backend cubre desde TLS 1.0 hasta TLS 1.3 con la selección de suites de cifrado más amplia de todos los transportes de sgcWebSockets. Puedes confiar en una autoridad privada o autofirmada con una raíz CA personalizada (RootCertFile), presentar un certificado de cliente para TLS mutuo, y anunciar protocolos de aplicación como http/1.1 mediante ALPN. Como los cuatro backends comparten la misma API TLSOptions, el código escrito para OpenSSL se traslada a un backend nativo cambiando solo la línea de IOHandler.

La contrapartida es el despliegue. OpenSSL es una dependencia externa, así que envías sus librerías de runtime con tu aplicación y las mantienes parcheadas. En Windows eso significa libssl-3.dll y libcrypto-3.dll, en Linux y Android los archivos .so correspondientes, y en las plataformas Apple los archivos .dylib. Si quieres TLS nativo sin ninguna librería que desplegar, fíjate en SChannel en Windows o en los backends nativos de Android y Apple.

Activar OpenSSL

Asigna iohOpenSSL a TLSOptions.IOHandler, y luego despliega las librerías OpenSSL con tu compilación.

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;

Enviar las librerías OpenSSL

OpenSSL es una dependencia externa, así que las librerías de runtime viajan con tu aplicación en todas las plataformas.

Windows

Despliega libssl-3.dll y libcrypto-3.dll junto a tu ejecutable (la compilación de 32 o 64 bits según tu destino).

Linux y Android

Empaqueta los archivos .so de libssl y libcrypto correspondientes, y cárgalos desde una ruta que tu aplicación pueda alcanzar en tiempo de ejecución.

macOS, iOS

Envía los archivos .dylib de libssl y libcrypto con el paquete de la app para que el runtime de OpenSSL esté disponible en el dispositivo.

Mantenerlas parcheadas

Como las librerías son tuyas para desplegar, eres responsable de actualizarlas cuando se publique una corrección de seguridad.

Nota sobre ediciones

OpenSSL (iohOpenSSL) está incluido en todas las ediciones de sgcWebSockets. Consulta la matriz de funciones para el desglose completo.

TLS multiplataforma en una línea

Descarga la prueba gratuita y añade TLS respaldado por OpenSSL a tus aplicaciones Delphi y C++Builder.