TsgcHTTP3Client › Proprietà › TLSOptions

TLSOptions Property

Configura i parametri TLS 1.3 utilizzati dalla connessione QUIC.

Sintassi

property TLSOptions: TsgcHTTP3SSLOptions;

Valore predefinito

Un'istanza viene creata automaticamente insieme al componente.

Note

QUIC ha TLS 1.3 integrato nel trasporto, quindi una connessione HTTP/3 è sempre cifrata e TLSOptions non può essere disabilitato. Utilizzarlo per configurare la connessione sicura: un certificato client e una chiave privata per il TLS reciproco, i certificati radice attendibili usati per verificare il server, la modalità di verifica del peer e l'identificatore di protocollo ALPN (h3). Il nome host impostato in Host viene inviato nell'estensione TLS SNI e viene confrontato con il certificato del server. Quando VerifyCertificate è abilitato il risultato della verifica viene applicato, quindi una catena che non risulta valida interrompe la connessione. La verifica lega inoltre il certificato all'host contattato: un nome DNS viene confrontato con i nomi host presenti nel certificato e un letterale IP con le voci IP, quindi un certificato con catena valida ma emesso per un nome diverso viene rifiutato. Il legame viene ricavato automaticamente dalla destinazione della connessione, non c'è nulla da configurare. Quando RootCertFile è vuoto viene utilizzato l'archivio di certificati attendibili predefinito del sistema operativo.

IOHandler (TwsTLSIOHandler, predefinito iohOpenSSL): motore TLS dell'handshake QUIC. iohOpenSSL mantiene il percorso OpenSSL con la selezione automatica del motore. iohNativeTLS esegue l'handshake TLS 1.3 sul motore TLS nativo del pack sgcCrypto e utilizza sempre il motore QUIC sgc, con il certificato del server verificato rispetto a RootCertFile o alle radici di sistema, nome host incluso. I session ticket, la ripresa e lo 0-RTT funzionano come su OpenSSL. Anche la protezione dei pacchetti QUIC è nativa, quindi OpenSSL non viene caricato affatto. Vedere SSL senza OpenSSL.

In caso di aggiornamento, tenere presente che le versioni precedenti calcolavano il risultato della verifica e poi lo scartavano, quindi con VerifyCertificate abilitato il client accettava qualsiasi certificato, compresi quelli firmati da un'autorità non attendibile e quelli emessi per un host diverso. Il controllo ora viene applicato. Un'installazione che prima si connetteva senza problemi può iniziare a fallire, perché i certificati accettati silenziosamente vengono ora verificati. Installare l'autorità emittente nell'archivio attendibile, oppure far puntare RootCertFile a un bundle che la contiene.

Esempio


oClient := TsgcHTTP3Client.Create(nil);
oClient.TLSOptions.VerifyCertificate := True;
oClient.TLSOptions.RootCertFile := 'ca.pem';

Torna alle Proprietà