TsgcHTTP3Server › Properties › QUICOptions

QUICOptions Property

QUIC transport options, including the TLS 1.3 certificate, private key and connection limits.

Syntax

property QUICOptions: TsgcQUICServerOptions;

Type

TsgcQUICServerOptions

Default

— (a sub-object created with the component; see the member defaults below)

Remarks

QUICOptions configures the underlying QUIC transport. QUIC always uses TLS 1.3, there is no plaintext mode, so a certificate and a matching private key are mandatory before the server can start. Assigning to QUICOptions copies the source object's members rather than replacing the object.

MemberTypeDefaultDescription
SSLOptions.CertFilestringemptyPath to the server certificate file in PEM format. Required.
SSLOptions.KeyFilestringemptyPath to the private key file in PEM format matching the certificate. Required.
SSLOptions.PasswordstringemptyPassphrase for an encrypted private key. The server installs an OpenSSL password callback before it loads KeyFile, so a passphrase-protected PEM key loads without prompting on the console. Leave it empty for an unencrypted key.
SSLOptions.RootCertFilestringemptyPath to the CA root certificate file, used when verifying client certificates.
SSLOptions.VerifyCertificateBooleanFalseWhen True, requests and validates a client certificate (mutual TLS).
SSLOptions.OpenSSL_OptionsTsgcOpenSSLClient_OptionsAPI version oslAPI_3_0How the OpenSSL libraries are located and loaded, for example the library path and the API version.
SSLOptions.IOHandlerTwsTLSIOHandleriohOpenSSLTLS engine of the QUIC handshake. iohOpenSSL keeps the OpenSSL path, where the engine is chosen automatically (see QUICMode). iohNativeTLS runs the TLS 1.3 handshake on the native TLS engine of the sgcCrypto pack and always uses the sgc QUIC engine. Session tickets, resumption and 0-RTT work as on OpenSSL. The QUIC packet protection is native too, so OpenSSL is not loaded at all.
MaxConnectionsInteger0Maximum number of simultaneous QUIC connections. 0 means unlimited.

The certificate and key are loaded by OpenSSL when Start is called, so a bad path, a mismatched pair or an unreadable key surfaces as an exception at that point and not when the properties are assigned. The certificate is presented for every connection and clients validate it exactly as they would an HTTPS certificate, so a self-signed certificate works only with clients configured to trust it.

These options belong to the transport, so they are read when the listener is created. Assign them before starting the server; changing them on a running server has no effect until it is stopped and started again.

This property is inherited from TsgcQUICServer.

This member is currently available in the Delphi/C++Builder implementation only. The .NET implementation has no QUIC options object: it configures its certificate through the TLSOptions property instead.

Example


oServer.QUICOptions.SSLOptions.CertFile := 'cert.pem';
oServer.QUICOptions.SSLOptions.KeyFile := 'key.pem';
oServer.QUICOptions.MaxConnections := 1000;

Back to Properties