TsgcHTTP3Server › Properties › QUICOptions
QUIC transport options, including the TLS 1.3 certificate, private key and connection limits.
property QUICOptions: TsgcQUICServerOptions;
TsgcQUICServerOptions
— (a sub-object created with the component; see the member defaults below)
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.
| Member | Type | Default | Description |
|---|---|---|---|
SSLOptions.CertFile | string | empty | Path to the server certificate file in PEM format. Required. |
SSLOptions.KeyFile | string | empty | Path to the private key file in PEM format matching the certificate. Required. |
SSLOptions.Password | string | empty | Passphrase 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.RootCertFile | string | empty | Path to the CA root certificate file, used when verifying client certificates. |
SSLOptions.VerifyCertificate | Boolean | False | When True, requests and validates a client certificate (mutual TLS). |
SSLOptions.OpenSSL_Options | TsgcOpenSSLClient_Options | API version oslAPI_3_0 | How the OpenSSL libraries are located and loaded, for example the library path and the API version. |
SSLOptions.IOHandler | TwsTLSIOHandler | iohOpenSSL | TLS 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. |
MaxConnections | Integer | 0 | Maximum 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.
oServer.QUICOptions.SSLOptions.CertFile := 'cert.pem';
oServer.QUICOptions.SSLOptions.KeyFile := 'key.pem';
oServer.QUICOptions.MaxConnections := 1000;