Backend TLS OpenSSL

OpenSSL (iohOpenSSL) è il trasporto TLS multipiattaforma per sgcWebSockets. Funziona su ogni piattaforma supportata dalla libreria ed è il predefinito sulla maggior parte di esse, con la più ampia copertura di protocolli e cifrari tra tutti i backend. Abilitalo impostando TLSOptions.IOHandler su iohOpenSSL, poi distribuisci le librerie runtime di OpenSSL insieme alla tua applicazione.

← Tutti i backend TLS

OpenSSL (iohOpenSSL)

TLS multipiattaforma implementato sul socket di Indy, disponibile su ogni piattaforma supportata da sgcWebSockets.

OpenSSL è l'implementazione TLS multipiattaforma che sgcWebSockets sovrappone al socket di Indy. È disponibile su Windows, Linux, macOS, iOS e Android, ed è il backend predefinito sulla maggior parte di essi. Scegli OpenSSL quando hai bisogno di un comportamento TLS identico su ogni piattaforma, oppure quando dipendi da una funzionalità esposta solo da OpenSSL.

Il backend copre TLS dalla 1.0 alla 1.3 con la più ampia selezione di suite di cifrari di qualsiasi trasporto sgcWebSockets. Puoi fidarti di un'autorità privata o autofirmata con una CA radice personalizzata (RootCertFile), presentare un certificato client per il TLS reciproco e annunciare protocolli applicativi come http/1.1 tramite ALPN. Poiché tutti e quattro i backend condividono la stessa API TLSOptions, il codice scritto per OpenSSL passa a un backend nativo cambiando solo la riga IOHandler.

Il compromesso è la distribuzione. OpenSSL è una dipendenza esterna, quindi spedisci le sue librerie runtime con la tua applicazione e le mantieni aggiornate. Su Windows significa libssl-3.dll e libcrypto-3.dll, su Linux e Android i file .so corrispondenti e sulle piattaforme Apple i file .dylib. Se desideri un TLS nativo senza alcuna libreria da distribuire, dai un'occhiata a SChannel su Windows oppure ai backend nativi di Android e Apple.

Abilita OpenSSL

Imposta TLSOptions.IOHandler su iohOpenSSL, poi distribuisci le librerie OpenSSL con la tua build.

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;

Spedire le librerie OpenSSL

OpenSSL è una dipendenza esterna, quindi le librerie runtime viaggiano con la tua applicazione su ogni piattaforma.

Windows

Distribuisci libssl-3.dll e libcrypto-3.dll accanto al tuo eseguibile (la build a 32 o 64 bit corrispondente al tuo target).

Linux e Android

Includi i file .so corrispondenti di libssl e libcrypto, poi caricali da un percorso che la tua applicazione può raggiungere a runtime.

macOS, iOS

Spedisci i file .dylib di libssl e libcrypto con il bundle dell'app in modo che il runtime di OpenSSL sia disponibile sul dispositivo.

Mantienile aggiornate

Poiché le librerie sono tue da distribuire, sei responsabile del loro aggiornamento quando viene rilasciata una correzione di sicurezza.

Nota sull'edizione

OpenSSL (iohOpenSSL) è incluso in tutte le edizioni di sgcWebSockets. Consulta la matrice delle funzionalità per il dettaglio completo.

TLS multipiattaforma in una riga

Scarica la versione di prova gratuita e aggiungi il TLS basato su OpenSSL alle tue app Delphi e C++Builder.