TsgcQUICServer › Właściwości › QUICOptions
Konfiguracja serwera, w tym certyfikat TLS i klucz prywatny oraz maksymalna liczba połączeń.
property QUICOptions: TsgcQUICServerOptions read FQUICOptions write SetQUICOptions;
MaxConnections=0; SSLOptions.Password=''
Grupuje konfigurację stosowaną do nasłuchiwacza QUIC. Ponieważ QUIC zawsze działa przez TLS 1.3, certyfikat i klucz prywatny są obowiązkowe i muszą być ustawione przed wywołaniem Start. Dostępne elementy:
SSLOptions.CertFile: ścieżka do certyfikatu serwera w formacie PEM. Wymagane.SSLOptions.KeyFile: ścieżka do klucza prywatnego pasującego do certyfikatu, w formacie PEM. Wymagane. Obsługiwany jest klucz zaszyfrowany, czyli chroniony hasłem; hasło ustaw we właściwości Password.SSLOptions.Password: hasło do zaszyfrowanego klucza prywatnego. Serwer instaluje wywołanie zwrotne hasła OpenSSL przed wczytaniem pliku KeyFile, dzięki czemu klucz PEM chroniony hasłem jest wczytywany bez pytania na konsoli. Pozostaw puste dla klucza niezaszyfrowanego.SSLOptions.RootCertFile: ścieżka do certyfikatu głównego CA używanego podczas weryfikacji certyfikatu klienta. Odczytywana, gdy VerifyCertificate ma wartość True; gdy jest pusta, używane są domyślne ścieżki weryfikacji OpenSSL.SSLOptions.VerifyCertificate: gdy ustawiono na True, serwer żąda i weryfikuje certyfikat klienta. Domyślnie False. Kotwice CA są najpierw wczytywane z RootCertFile, a następnie kontekst jest ustawiany na SSL_VERIFY_PEER z SSL_VERIFY_FAIL_IF_NO_PEER_CERT, więc klient, który nie przedstawi certyfikatu lub przedstawi certyfikat nieprzechodzący weryfikacji, jest odrzucany.SSLOptions.OpenSSL_Options: niskopoziomowe ustawienia OpenSSL; wersja API domyślnie wynosi oslAPI_3_0, ponieważ QUIC wymaga API OpenSSL 3.x.SSLOptions.IOHandler: silnik TLS uzgadniania QUIC (domyślnie iohOpenSSL, zachowujący automatyczny wybór silnika, zobacz QUICMode). Z iohNativeTLS uzgadnianie TLS 1.3 działa na natywnym silniku TLS pakietu sgcCrypto i zawsze używany jest silnik QUIC sgc (QUICMode = qmCustom). Certyfikat jest odczytywany z PEM lub PFX, a certyfikaty klientów są weryfikowane względem RootCertFile lub głównych certyfikatów systemowych. 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.MaxConnections: maksymalna liczba jednoczesnych połączeń; 0 (domyślnie) oznacza brak ograniczeń. Nowe połączenia są odrzucane po osiągnięciu limitu.
oServer := TsgcQUICServer.Create(nil);
oServer.Port := 4433;
oServer.QUICOptions.SSLOptions.CertFile := 'cert.pem';
oServer.QUICOptions.SSLOptions.KeyFile := 'key.pem';
oServer.QUICOptions.MaxConnections := 1000;
oServer.Start;