TsgcQUICServer › プロパティ › QUICOptions
TLS 証明書と秘密鍵および最大接続数を含むサーバー設定。
property QUICOptions: TsgcQUICServerOptions read FQUICOptions write SetQUICOptions;
MaxConnections=0; SSLOptions.Password=''; SSLOptions.VerifyCertificate=False; SSLOptions.OpenSSL_Options.APIVersion=oslAPI_3_0
QUIC リスナーに適用される設定をグループ化します。QUIC は常に TLS 1.3 上で動作するため、証明書と秘密鍵は必須であり、Start を呼び出す前に設定する必要があります。利用可能なメンバーは以下の通りです:
SSLOptions.CertFile: PEM 形式のサーバー証明書ファイルへのパス。必須です。SSLOptions.KeyFile: PEM 形式で、証明書に対応する秘密鍵へのパス。必須です。暗号化された(パスフレーズで保護された)鍵もサポートされます。パスフレーズは Password に設定してください。SSLOptions.Password: 暗号化された秘密鍵のパスフレーズ。サーバーは KeyFile をロードする前に OpenSSL のパスワードコールバックを設定するため、パスフレーズで保護された PEM 鍵もコンソールで入力を求められることなくロードされます。暗号化されていない鍵の場合は空のままにしてください。.NET では PFX をロードする際にも同じメンバーが使用されます。SSLOptions.RootCertFile: クライアント証明書検証が有効な場合に使用される CA ルート証明書へのパス。VerifyCertificate が True のときに読み取られます。空の場合は OpenSSL の既定の検証パスが使用されます。SSLOptions.VerifyCertificate: True の場合、サーバーはクライアント証明書を要求して検証します。デフォルトは False です。まず RootCertFile から CA のトラストアンカーがロードされ、続いてコンテキストが SSL_VERIFY_PEER と SSL_VERIFY_FAIL_IF_NO_PEER_CERT に設定されます。そのため、証明書を提示しないクライアントや検証に失敗するクライアントは拒否されます。SSLOptions.OpenSSL_Options: 低レベルの OpenSSL 設定。QUIC には OpenSSL 3.x API が必要なため、API バージョンはデフォルトで oslAPI_3_0 になります。SSLOptions.IOHandler(デフォルト iohOpenSSL): QUIC ハンドシェイクの TLS エンジンを選択します。iohOpenSSL は OpenSSL パスを維持し、エンジンは自動的に選択されます(QUICMode を参照)。iohNativeTLS は sgcCrypto パックのネイティブ TLS エンジンで TLS 1.3 ハンドシェイクを実行し、常に sgc QUIC エンジン(QUICMode = qmCustom)を使用します。証明書は PEM または PFX から読み込まれ、クライアント証明書は RootCertFile またはシステムのルート証明書に対して検証されます。セッションチケット、再開、0-RTT は OpenSSL と同様に機能します。QUIC パケット保護もネイティブであるため、OpenSSL は一切読み込まれません。MaxConnections: 同時接続の最大数。0(デフォルト)は無制限を意味します。制限に達すると新しい接続は拒否されます。
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;