Backends de SSL / TLS

O sgcWebSockets vem com quatro transportes TLS intercambiáveis por trás de uma única propriedade, TLSOptions.IOHandler. Escolha OpenSSL para máxima portabilidade ou um backend nativo da plataforma (Windows SChannel, Android, iOS/macOS) que usa a própria pilha TLS do sistema operacional, sem bibliotecas OpenSSL para implantar. Trocar de backend é uma única linha de código, nada mais muda.

Quatro transportes TLS, uma única propriedade

Todos os backends se conectam à mesma API TLSOptions. Escolha o que se encaixa na sua plataforma e na sua implantação e defina TLSOptions.IOHandler.

Comparativo de backends

Plataformas, tamanho da implantação, suporte a TLS 1.3 e edição de cada transporte.

Backend Plataformas Biblioteca a implantar TLS 1.3 Edição
OpenSSL Windows, Linux, macOS, iOS, Android OpenSSL (libssl/libcrypto) Sim Todas as edições
SChannel Windows Nenhuma (integrado ao Windows) Sim (Windows 11/Server 2022+) Professional, Enterprise
Android TLS Android Nenhuma (usa o sistema operacional) Sim Enterprise
Apple TLS iOS, macOS Nenhuma (usa o sistema operacional) Sim (10.14+/iOS 12+) Enterprise

Escolha um backend

Cada transporte tem sua própria página com a configuração completa, código para Delphi e C++Builder, notas de implantação e detalhes de edição.

OpenSSL (iohOpenSSL)

TLS multiplataforma sobre o socket do Indy, disponível em todas as plataformas que o sgcWebSockets atende e o padrão na maioria delas. TLS 1.0 a 1.3 completo, a mais ampla cobertura de cifras, CA personalizada, certificados de cliente e ALPN. Você implanta as bibliotecas de runtime do OpenSSL junto com o seu aplicativo. Vem em todas as edições.

Ler o guia completo →

SChannel (iohSChannel)

A pilha TLS nativa da Microsoft (Secure Channel / SSPI), integrada ao Windows. Zero implantação de bibliotecas, nenhuma DLL do OpenSSL para enviar ou atualizar, e usa o repositório de certificados do Windows. Apenas no Windows. Vem nas edições Professional e Enterprise.

Ler o guia completo →

TLS nativo do Android (iohAndroidTLS)

TLS nativo do Android usando o SSLEngine da plataforma via JNI. Nenhum .so do OpenSSL no seu APK, validação contra o repositório de confiança do sistema Android, TLS 1.3 e ALPN no Android 10 (API 29) e posterior. Edição Enterprise.

Ler o guia completo →

TLS nativo da Apple (iohAppleTLS)

TLS nativo da Apple para iOS e macOS, sem nenhum .dylib do OpenSSL para implantar. Ele seleciona automaticamente o Network.framework (TLS 1.3) no macOS 10.14+ / iOS 12+ e recorre ao Secure Transport (TLS 1.2) em sistemas mais antigos, com confiança do sistema, SNI, CA personalizada, certificado de cliente / mTLS e ALPN. Edição Enterprise.

Ler o guia completo →

Observação sobre edições

O TLS nativo da plataforma, Android (iohAndroidTLS) e Apple (iohAppleTLS), requer a edição Enterprise. OpenSSL (iohOpenSSL) está incluído em todas as edições; SChannel (iohSChannel) está incluído nas edições Professional e Enterprise.

Troque com uma única linha

Todos os quatro backends compartilham a mesma API TLSOptions, então alternar entre eles é uma única mudança de propriedade. Nada mais no seu código precisa mudar.

TLS & VerifyCertificate

Ative o TLS e alterne a verificação de certificado do par da mesma forma em todos os backends.

RootCertFile

Aponte para uma raiz de CA personalizada para confiar em uma autoridade certificadora privada ou autoassinada.

CertFile & Password

Forneça um certificado de cliente e sua senha para autenticação TLS mútua (mTLS).

ALPNProtocols

Anuncie protocolos de aplicação (por exemplo, http/1.1) durante o 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, zero OpenSSL para implantar

Baixe a versão de avaliação gratuita e troque de backend TLS com uma única linha de código.