TsgcQUICClient › Propriétés › SSLQUICOptions
Paramètres TLS 1.3 pour la connexion QUIC : certificats, ALPN et vérification des pairs.
property SSLQUICOptions: TsgcSSLQUICClient_Options read FSSLQUICOptions write SetSSLQUICOptions;
—
SSLQUICOptions regroupe les paramètres TLS 1.3 utilisés par la couche sécurisée que QUIC requiert. QUIC négocie toujours ALPN et TLS 1.3, et ces options contrôlent la façon dont cette négociation est effectuée : CertFile et KeyFile fournissent un certificat client, RootCertFile fournit l'autorité de certification utilisée pour valider le serveur, VerifyCertificate et VerifyCertificate_Options contrôlent la vérification du pair, Version sélectionne la version TLS, OpenSSL_Options règle le backend OpenSSL et ConnectTimeout limite la négociation. Ajustez ses sous-propriétés avant d'ouvrir la connexion, les valeurs étant lues lors de l'établissement de la connexion. La couche sécurisée elle-même est activée ou désactivée avec SSLQUIC, tandis que QUICOptions contient le réglage de transport non-TLS.
ConnectTimeout est désormais appliqué par le transport : la négociation est cadencée par rapport à cette échéance et est abandonnée dès qu'elle expire, de sorte qu'avec la valeur par défaut un serveur injoignable échoue en une dizaine de secondes au lieu de la trentaine de secondes que prenait l'ancienne négociation bloquante.
Lorsque VerifyCertificate vaut True, le certificat est également lié à l'hôte auquel le client se connecte : un nom DNS placé dans Host est comparé aux noms d'hôte du certificat, un littéral IP aux entrées IP. Un certificat dont la chaîne est valide mais qui a été émis pour un autre nom est rejeté. Cette vérification d'identité ne demande rien de votre part, le client transmet lui-même la cible de la connexion à l'étape de vérification. OpenSSL_Options.X509Checks sert à remplacer ou à compléter ce contrôle, pas à l'activer.
IOHandler (TwsTLSIOHandler, par défaut iohOpenSSL) est le moteur TLS de la poignée de main QUIC. iohOpenSSL conserve la voie OpenSSL et la sélection automatique du moteur. iohNativeTLS exécute la poignée de main TLS 1.3 sur le moteur TLS natif du pack sgcCrypto et utilise toujours le moteur QUIC sgc (qmCustom). Les tickets de session, la reprise et le 0-RTT fonctionnent comme avec OpenSSL. La protection des paquets QUIC est native elle aussi, de sorte qu'OpenSSL n'est pas chargé du tout.
oClient := TsgcQUICClient.Create(nil);
oClient.Host := 'www.example.com';
oClient.Port := 443;
oClient.SSLQUIC := True;
oClient.SSLQUICOptions.VerifyCertificate := True;
oClient.SSLQUICOptions.RootCertFile := 'ca.pem';