TsgcHTTP3Client › Właściwości › TLSOptions
Konfiguruje parametry TLS 1.3 używane przez połączenie QUIC.
property TLSOptions: TsgcHTTP3SSLOptions;
Instancja jest tworzona automatycznie wraz z komponentem.
QUIC ma TLS 1.3 wbudowane w transport, więc połączenie HTTP/3 jest zawsze szyfrowane i właściwości TLSOptions nie można wyłączyć. Użyj jej do konfiguracji bezpiecznego połączenia: certyfikatu klienta i klucza prywatnego dla wzajemnego TLS, zaufanych certyfikatów głównych używanych do weryfikacji serwera, trybu weryfikacji partnera i identyfikatora protokołu ALPN (h3). Nazwa hosta ustawiona we właściwości Host jest wysyłana w rozszerzeniu TLS SNI i porównywana z certyfikatem serwera. Gdy VerifyCertificate ma wartość True, wynik weryfikacji jest egzekwowany, więc łańcuch, który nie przechodzi walidacji, przerywa połączenie. Weryfikacja wiąże też certyfikat z hostem, z którym nawiązywane jest połączenie: nazwa DNS jest porównywana z nazwami hostów w certyfikacie, a literał IP z wpisami IP, więc certyfikat o poprawnym łańcuchu, ale wystawiony dla innej nazwy, jest odrzucany. Gdy RootCertFile jest puste, używany jest domyślny magazyn zaufania systemu operacyjnego.
IOHandler (TwsTLSIOHandler, domyślnie iohOpenSSL): silnik TLS uzgadniania QUIC. iohOpenSSL zachowuje ścieżkę OpenSSL i automatyczny wybór silnika. iohNativeTLS uruchamia uzgadnianie TLS 1.3 na natywnym silniku TLS pakietu sgcCrypto i zawsze używa silnika QUIC sgc, z certyfikatem serwera weryfikowanym względem RootCertFile lub głównych certyfikatów systemowych, łącznie z nazwą hosta. Bilety sesji, wznawianie i 0-RTT działają tak samo jak przy OpenSSL. Ochrona pakietów QUIC jest również natywna, więc OpenSSL w ogóle nie jest ładowany. Zobacz Praca bez OpenSSL.
Jeśli aktualizujesz starszą wersję, zwróć uwagę, że wcześniejsze wersje obliczały wynik weryfikacji, a następnie go odrzucały, więc przy włączonym VerifyCertificate klient akceptował dowolny certyfikat, w tym podpisany przez niezaufany urząd oraz wystawiony dla innego hosta. Sprawdzenie jest teraz stosowane. Wdrożenie, które wcześniej łączyło się poprawnie, może zacząć zgłaszać błędy, ponieważ certyfikaty akceptowane dotąd po cichu są teraz weryfikowane. Zainstaluj wystawiający urząd w magazynie zaufania lub wskaż we właściwości RootCertFile pakiet, który go zawiera.
oClient := TsgcHTTP3Client.Create(nil);
oClient.TLSOptions.VerifyCertificate := True;
oClient.TLSOptions.RootCertFile := 'ca.pem';