TsgcQUICServer › Proprietà › QUICOptions
Configurazione del server, incluso il certificato TLS, la chiave privata e il numero massimo di connessioni.
property QUICOptions: TsgcQUICServerOptions read FQUICOptions write SetQUICOptions;
MaxConnections=0; SSLOptions.Password=''; SSLOptions.VerifyCertificate=False; SSLOptions.OpenSSL_Options.APIVersion=oslAPI_3_0
Raggruppa la configurazione applicata al listener QUIC. Poiché QUIC viene sempre eseguito su TLS 1.3, un certificato e una chiave privata sono obbligatori e devono essere impostati prima di chiamare Start. I membri disponibili sono:
SSLOptions.CertFile: percorso del certificato del server in formato PEM. Obbligatorio.SSLOptions.KeyFile: percorso della chiave privata corrispondente al certificato, in formato PEM. Obbligatorio. È supportata anche una chiave cifrata (protetta da passphrase), impostando la passphrase in Password.SSLOptions.Password: passphrase per una chiave privata cifrata. Il server installa una callback OpenSSL per la password prima di caricare KeyFile, quindi una chiave PEM protetta da passphrase viene caricata senza doverla digitare sulla console. Lasciarla vuota per una chiave non cifrata. In .NET lo stesso membro viene usato anche per caricare un PFX.SSLOptions.RootCertFile: percorso del certificato radice CA utilizzato quando è abilitata la verifica del certificato client. Viene letto quando VerifyCertificate è True. Se è vuoto vengono utilizzati i percorsi di verifica predefiniti di OpenSSL.SSLOptions.VerifyCertificate: quando è True il server richiede e verifica il certificato del client (TLS reciproco). Il valore predefinito è False. Le ancore CA vengono caricate prima da RootCertFile, poi il contesto viene impostato su SSL_VERIFY_PEER con SSL_VERIFY_FAIL_IF_NO_PEER_CERT, quindi un client che non presenta alcun certificato, o che ne presenta uno non valido, viene rifiutato.SSLOptions.OpenSSL_Options: impostazioni OpenSSL di basso livello; la versione API predefinita è oslAPI_3_0 perché QUIC richiede l'API OpenSSL 3.x.SSLOptions.IOHandler (TwsTLSIOHandler, iohOpenSSL): motore TLS dell'handshake QUIC. iohOpenSSL mantiene il percorso OpenSSL, dove il motore viene scelto automaticamente (vedere QUICMode). iohNativeTLS esegue l'handshake TLS 1.3 sul motore TLS nativo del pack sgcCrypto e utilizza sempre il motore QUIC sgc (QUICMode = qmCustom). Il certificato viene letto da PEM o PFX, e i certificati client vengono verificati rispetto a RootCertFile o alle radici di sistema. I session ticket, la ripresa e lo 0-RTT funzionano come su OpenSSL. Anche la protezione dei pacchetti QUIC è nativa, quindi OpenSSL non viene caricato affatto.MaxConnections: numero massimo di connessioni simultanee; 0 (predefinito) significa illimitato. Le nuove connessioni vengono scartate una volta raggiunto il limite.
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;