TsgcQUICClient › Eigenschappen › SSLQUICOptions
TLS 1.3-instellingen voor de QUIC-verbinding: certificaten, ALPN en peer-verificatie.
property SSLQUICOptions: TsgcSSLQUICClient_Options read FSSLQUICOptions write SetSSLQUICOptions;
—
SSLQUICOptions groepeert de TLS 1.3-instellingen die worden gebruikt door de beveiligingslaag die QUIC vereist. QUIC onderhandelt altijd ALPN en TLS 1.3, en deze opties bepalen hoe die handshake wordt uitgevoerd: CertFile en KeyFile leveren een clientcertificaat, RootCertFile levert de CA die wordt gebruikt om de server te valideren, VerifyCertificate en VerifyCertificate_Options regelen peerverificatie, Version selecteert de TLS-versie, OpenSSL_Options stelt de OpenSSL-backend in en ConnectTimeout begrenst de handshake. Pas de sub-eigenschappen aan voordat u de verbinding opent; de waarden worden gelezen wanneer de verbinding tot stand wordt gebracht. De beveiligingslaag zelf wordt in- of uitgeschakeld met SSLQUIC, terwijl QUICOptions de niet-TLS transportafstemming bevat.
IOHandler (TwsTLSIOHandler, standaard iohOpenSSL) is de TLS-engine van de QUIC-handshake. iohOpenSSL behoudt het OpenSSL-pad en de automatische engineselectie. iohNativeTLS voert de TLS 1.3-handshake uit op de native TLS-engine van het sgcCrypto-pack en gebruikt altijd de sgc QUIC-engine (qmCustom). Sessietickets, hervatting en 0-RTT werken zoals bij OpenSSL. De QUIC-pakketbescherming is ook native, dus OpenSSL wordt helemaal niet geladen.
ConnectTimeout wordt nu door het transport afgedwongen: de handshake wordt tegen deze deadline uitgevoerd en wordt afgebroken zodra die verstrijkt, dus met de standaardwaarde mislukt een onbereikbare server na ongeveer tien seconden in plaats van na de dertig seconden die de eerdere blokkerende handshake nodig had.
Wanneer VerifyCertificate True is, wordt het certificaat ook gekoppeld aan de host waarmee verbinding wordt gemaakt: een DNS-naam in Host wordt vergeleken met de hostnamen in het certificaat, een IP-literal met de IP-vermeldingen. Een certificaat met een geldige keten dat voor een andere naam is uitgegeven, wordt geweigerd. Voor die controle op hostidentiteit hoeft u niets te doen: de client geeft het verbindingsdoel zelf door aan de verificatiestap, als hostnaam wanneer Host een DNS-naam bevat en als adres wanneer het een IP-literal bevat. OpenSSL_Options.X509Checks dient om die controle te overschrijven of uit te breiden, niet om ze in te schakelen.
oClient := TsgcQUICClient.Create(nil);
oClient.Host := 'www.example.com';
oClient.Port := 443;
oClient.SSLQUIC := True;
oClient.SSLQUICOptions.VerifyCertificate := True;
oClient.SSLQUICOptions.RootCertFile := 'ca.pem';