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.
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, oppure continua a usare OpenSSL collegandolo staticamente nel tuo eseguibile Windows, vedi sotto.
Codice
Abilita OpenSSL
Imposta TLSOptions.IOHandler su iohOpenSSL, poi distribuisci le librerie OpenSSL con la tua build.
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), oppure evita del tutto le DLL collegando OpenSSL staticamente, vedi sotto.
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.
Windows · Enterprise, All-Access
Collega OpenSSL nell'eseguibile
Su Windows, OpenSSL può essere collegato direttamente all'interno del tuo .exe invece di essere caricato da libssl-3.dll e libcrypto-3.dll a runtime.
Aggiungi l'unità sgcIdSSLOpenSSL_Static alla clausola uses del tuo progetto e non c'è nient'altro da configurare: nessuna direttiva del compilatore da abilitare, nessuna versione dell'API OpenSSL da scegliere. La tua applicazione inizia a usare la libreria OpenSSL collegata nell'eseguibile alla successiva esecuzione, sia per i componenti client sia per quelli server, nelle build a 32 e 64 bit. Rimuovi l'unità dalla clausola uses e la tua applicazione torna a caricare le DLL di OpenSSL esattamente come prima.
La versione di OpenSSL attualmente collegata è la 3.5.7, aggiornata negli aggiornamenti futuri in modo che tu non debba tracciare o ridistribuire tu stesso i binari di OpenSSL. Il collegamento statico richiede Delphi XE2 o versioni successive e la libreria Indy personalizzata (l'impostazione predefinita in queste edizioni); nelle versioni di Delphi precedenti l'unità viene compilata a vuoto e la tua applicazione continua a caricare le DLL di OpenSSL come di consueto.
Nota sull'edizione
OpenSSL (iohOpenSSL) è incluso in tutte le edizioni di sgcWebSockets. Consulta la matrice delle funzionalità per il dettaglio completo.
Il collegamento statico su Windows richiede Delphi XE2 o versioni successive ed è disponibile nelle edizioni Enterprise e All-Access.
La scelta più conveniente: All-AccessTutti i prodotti eSeGeCe, con Supporto Premium incluso, a partire da €1,059/anno.