TsgcQUICClient › Właściwości › SSLQUICOptions
Ustawienia TLS 1.3 dla połączenia QUIC: certyfikaty, ALPN i weryfikacja węzłów.
property SSLQUICOptions: TsgcSSLQUICClient_Options read FSSLQUICOptions write SetSSLQUICOptions;
—
SSLQUICOptions grupuje ustawienia TLS 1.3 używane przez warstwę bezpieczną wymaganą przez QUIC. QUIC zawsze negocjuje ALPN i TLS 1.3, a te opcje sterują sposobem wykonania tego uzgadniania: CertFile i KeyFile dostarczają certyfikat klienta, RootCertFile dostarcza CA używane do weryfikacji serwera, VerifyCertificate i VerifyCertificate_Options sterują weryfikacją partnera, Version wybiera wersję TLS, OpenSSL_Options dostrajają backend OpenSSL, IOHandler wybiera silnik TLS uzgadniania QUIC (domyślnie iohOpenSSL, zachowujący automatyczny wybór silnika, albo iohNativeTLS, który uruchamia uzgadnianie TLS 1.3 na natywnym silniku TLS pakietu sgcCrypto i zawsze używa silnika QUIC sgc, z biletami sesji, wznawianiem i 0-RTT tak samo jak przy OpenSSL; ochrona pakietów QUIC jest również natywna, więc OpenSSL w ogóle nie jest ładowany), a ConnectTimeout ogranicza czas uzgadniania. Dostosuj właściwości podrzędne przed otwarciem połączenia; wartości są odczytywane podczas nawiązywania połączenia. Sama warstwa bezpieczna jest włączana lub wyłączana właściwością SSLQUIC, natomiast QUICOptions przechowuje ustawienia transportu niezwiązane z TLS.
ConnectTimeout jest teraz egzekwowany przez transport: uzgadnianie jest prowadzone względem tego terminu i jest przerywane natychmiast po jego upływie, więc przy wartości domyślnej nieosiągalny serwer zgłasza niepowodzenie po około dziesięciu sekundach, a nie po około trzydziestu, jak przy wcześniejszym blokującym uzgadnianiu.
Sprawdzenie tożsamości hosta nie wymaga niczego z Twojej strony. Gdy VerifyCertificate ma wartość True, klient sam przekazuje cel połączenia do etapu weryfikacji: jako nazwę hosta, gdy Host zawiera nazwę DNS, i jako adres, gdy zawiera literał IP. Certyfikat o poprawnym łańcuchu, ale wystawiony dla innej nazwy, jest odrzucany. Właściwość OpenSSL_Options.X509Checks służy do nadpisania lub rozszerzenia tego sprawdzenia, a nie do jego włączenia.
oClient := TsgcQUICClient.Create(nil);
oClient.Host := 'www.example.com';
oClient.Port := 443;
oClient.SSLQUIC := True;
oClient.SSLQUICOptions.VerifyCertificate := True;
oClient.SSLQUICOptions.RootCertFile := 'ca.pem';