TsgcHTTP3Client › プロパティ › TLSOptions
QUIC 接続で使用される TLS 1.3 パラメータを設定します。
property TLSOptions: TsgcHTTP3SSLOptions;
インスタンスはコンポーネントとともに自動的に作成されます。
QUIC はトランスポートに TLS 1.3 が組み込まれているため、HTTP/3 接続は常に暗号化され、TLSOptions を無効にすることはできません。これを使用してセキュアな接続を設定します:相互 TLS のためのクライアント証明書と秘密鍵、サーバーの検証に使用する信頼されたルート証明書、ピア検証モード、および ALPN プロトコル識別子(h3)。Host に設定されたホスト名は TLS SNI 拡張で送信され、サーバー証明書と照合されます。
VerifyCertificate(Boolean、デフォルトは True)はサーバー証明書を検証します。検証結果は実際に適用されるため、チェーンの検証に失敗した場合は接続が中止されます。検証では証明書と接続先ホストとの対応も確認されます。DNS 名は証明書内のホスト名と、IP リテラルは IP エントリと照合されるため、チェーンは有効でも別の名前に対して発行された証明書は拒否されます。この対応付けは接続先から自動的に取得されるため、追加の設定は必要ありません。RootCertFile が空の場合は、オペレーティングシステムの既定のトラストストアが使用されます。検証を無効にすると接続が傍受される危険があるため、管理されたテスト環境以外では有効なままにしてください。
IOHandler(TwsTLSIOHandler、デフォルト iohOpenSSL): QUIC ハンドシェイクの TLS エンジンを選択します。iohOpenSSL は OpenSSL パスとエンジンの自動選択を維持します。iohNativeTLS は sgcCrypto パックのネイティブ TLS エンジンで TLS 1.3 ハンドシェイクを実行し、常に sgc QUIC エンジンを使用します。サーバー証明書はホスト名を含めて RootCertFile またはシステムのルート証明書に対して検証されます。セッションチケット、再開、0-RTT は OpenSSL と同様に機能します。QUIC パケット保護もネイティブであるため、OpenSSL は一切読み込まれません。詳しくはOpenSSL なしで実行するを参照してください。
アップグレードする場合は次の点にご注意ください。以前のバージョンでは検証結果を計算したうえで破棄していたため、VerifyCertificate を有効にしていても、信頼されていない認証局が署名した証明書や別のホスト向けに発行された証明書を含め、あらゆる証明書が受け入れられていました。現在はこのチェックが適用されます。これまで問題なく接続できていた環境でも、暗黙のうちに受け入れられていた証明書が検証されるようになるため、接続に失敗する場合があります。発行元の認証局をトラストストアにインストールするか、その認証局を含むバンドルを RootCertFile に指定してください。
oClient := TsgcHTTP3Client.Create(nil);
oClient.TLSOptions.VerifyCertificate := True;
oClient.TLSOptions.RootCertFile := 'ca.pem';