TsgcHTTP3Client › Propriétés › TLSOptions
Configure les paramètres TLS 1.3 utilisés par la connexion QUIC.
property TLSOptions: TsgcHTTP3SSLOptions;
Une instance est créée automatiquement avec le composant.
QUIC intègre TLS 1.3 dans le transport, de sorte qu'une connexion HTTP/3 est toujours chiffrée et TLSOptions ne peut pas être désactivé. Utilisez-le pour configurer la connexion sécurisée : un certificat client et une clé privée pour le TLS mutuel, les certificats racine de confiance utilisés pour vérifier le serveur, le mode de vérification des pairs et l'identifiant de protocole ALPN (h3). Le nom d'hôte défini dans Host est envoyé dans l'extension TLS SNI et est comparé au certificat du serveur.
Lorsque VerifyCertificate est activé (valeur par défaut True), le résultat de la vérification est appliqué : une chaîne qui ne se valide pas interrompt la connexion. La vérification lie également le certificat à l'hôte contacté. Un nom DNS est comparé aux noms d'hôte du certificat et un littéral IP aux entrées IP, de sorte qu'un certificat dont la chaîne est valide mais qui a été émis pour un autre nom est rejeté. Cette liaison est déduite automatiquement de la cible de la connexion, il n'y a rien de plus à configurer. Lorsque RootCertFile est vide, le magasin de certificats de confiance par défaut du système d'exploitation est utilisé.
IOHandler (TwsTLSIOHandler, par défaut iohOpenSSL) : 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, avec le certificat du serveur vérifié par rapport à RootCertFile ou aux racines système, nom d'hôte inclus. 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. Voir Fonctionner sans OpenSSL.
Si vous effectuez une mise à jour, notez que les versions antérieures calculaient le résultat de la vérification puis l'ignoraient : avec VerifyCertificate activé, le client acceptait n'importe quel certificat, y compris un certificat signé par une autorité non fiable ou émis pour un autre hôte. Le contrôle est désormais appliqué. Un déploiement qui se connectait auparavant sans problème peut donc commencer à échouer, car les certificats acceptés silencieusement sont maintenant vérifiés. Installez l'autorité émettrice dans le magasin de confiance, ou faites pointer RootCertFile vers un ensemble de certificats qui la contient.
oClient := TsgcHTTP3Client.Create(nil);
oClient.TLSOptions.VerifyCertificate := True;
oClient.TLSOptions.RootCertFile := 'ca.pem';