TsgcHTTP3Client › Eigenschaften › TLSOptions
TLS-1.3-Parameter, die von der QUIC-Verbindung verwendet werden.
property TLSOptions: TsgcHTTP3SSLOptions read FTLSOptions write SetTLSOptions;
TsgcHTTP3SSLOptions
Siehe die einzelnen Parameter unten.
QUIC verschlüsselt immer und verwendet immer TLS 1.3, es gibt daher keine Option, die Sicherheit abzuschalten oder eine ältere Protokollversion auszuwählen. TLSOptions konfiguriert die Zertifikate und die Prüfrichtlinie dieses obligatorischen Handshakes und muss vor dem Verbinden gesetzt werden.
Die Parameter sind:
CertFile (String, Standard leer): Client-Zertifikatsdatei, nur erforderlich, wenn der Server gegenseitiges TLS anfordert.
KeyFile (String, Standard leer): privater Schlüssel, der zu CertFile passt.
Password (String, standardmäßig leer): Passwort, das den privaten Schlüssel schützt.
RootCertFile (String, Standard leer): CA-Bundle, das zur Überprüfung des Serverzertifikats verwendet wird. Lassen Sie es leer, um den Standard-Truststore zu verwenden.
VerifyCertificate (Boolean, Standard True): überprüft das Serverzertifikat. Das Ergebnis wird durchgesetzt, sodass eine Kette, die nicht validiert werden kann, die Verbindung abbricht. Die Überprüfung bindet das Zertifikat außerdem an den kontaktierten Host. Ein DNS-Name wird mit den Hostnamen im Zertifikat abgeglichen und ein IP-Literal mit den IP-Einträgen, sodass ein Zertifikat mit gültiger Kette, das aber für einen anderen Namen ausgestellt wurde, abgelehnt wird. Die Bindung wird automatisch aus dem Verbindungsziel übernommen, es ist nichts zusätzlich zu konfigurieren. Wenn RootCertFile leer ist, wird der Standard-Zertifikatspeicher des Betriebssystems verwendet. Wird die Überprüfung deaktiviert, ist die Verbindung anfällig für Abhörangriffe, lassen Sie sie daher außerhalb kontrollierter Testumgebungen aktiviert.
VerifyDepth (Integer, Standard 2): maximale Länge der bei der Überprüfung akzeptierten Zertifikatskette.
OpenSSL_Options (TsgcOpenSSLClient_Options): woher die OpenSSL-Bibliothek geladen wird und welche API-Version verwendet wird. Standard ist die API-Version oslAPI_3_0, und OpenSSL 3.5 oder neuer ist erforderlich, weil dies die erste Version mit nativem QUIC ist.
IOHandler (TwsTLSIOHandler, Standard iohOpenSSL): TLS-Engine des QUIC-Handshakes. iohOpenSSL behält den OpenSSL-Pfad und die automatische Engine-Auswahl bei. iohNativeTLS führt den TLS-1.3-Handshake auf der nativen TLS-Engine des sgcCrypto-Packs aus und verwendet immer die sgc-QUIC-Engine, wobei das Serverzertifikat gegen RootCertFile oder die Systemvertrauensanker überprüft wird, einschließlich Hostname. Session-Tickets, Wiederaufnahme und 0-RTT funktionieren wie bei OpenSSL. Der QUIC-Paketschutz ist ebenfalls nativ, sodass OpenSSL überhaupt nicht geladen wird. Siehe SSL ohne OpenSSL.
Beim Upgrade ist zu beachten, dass frühere Versionen das Überprüfungsergebnis berechnet und anschließend verworfen haben, sodass der Client bei aktiviertem VerifyCertificate jedes Zertifikat akzeptierte, auch eines, das von einer nicht vertrauenswürdigen Zertifizierungsstelle signiert oder für einen anderen Host ausgestellt wurde. Die Prüfung wird jetzt angewendet. Eine Installation, die zuvor erfolgreich verbunden hat, kann daher fehlschlagen, weil Zertifikate, die stillschweigend akzeptiert wurden, jetzt überprüft werden. Installieren Sie die ausstellende Zertifizierungsstelle im Zertifikatspeicher, oder verweisen Sie mit RootCertFile auf ein Bündel, das sie enthält.
oClient.TLSOptions.VerifyCertificate := True;
oClient.TLSOptions.RootCertFile := 'ca-bundle.pem';