TsgcWebSocketClientEigenschaften › TLSOptions

TLSOptions Eigenschaft

Konfiguriert Zertifikate, TLS-Version, ALPN, IOHandler und weitere Details für sichere Verbindungen, die verwendet werden, wenn TLS aktiviert ist.

Syntax

property TLSOptions: TsgcWSTLS_Options read FTLSOptions write SetTLSOptions;

Standardwert

Preset=tlspCustom

Hinweise

Nur zugänglich, wenn TLS True ist. Zu den Untereigenschaften gehören RootCertFile, CertFile, KeyFile, Password, VerifyCertificate, VerifyDepth, Version (von tlsUndefined bis tls1_3), ALPNProtocols und IOHandler (iohOpenSSL, iohSChannel, iohAndroidTLS oder iohAppleTLS). Unter Android verwendet iohAndroidTLS das plattformeigene native TLS (javax.net.ssl.SSLEngine) und unter iOS und macOS verwendet iohAppleTLS das native Apple-TLS, sodass keine OpenSSL-Bibliotheken bereitgestellt werden müssen; natives Plattform-TLS erfordert die Enterprise-Edition. OpenSSL-spezifische Einstellungen befinden sich unter OpenSSL_Options und SChannel-spezifische Einstellungen unter SChannel_Options.

VerifyCertificate steuert die Zertifikatsvalidierung für jeden IOHandler auf dieselbe Weise, einschließlich iohSChannel: Es ist standardmäßig auf False gesetzt, sodass ein Server, der ein selbstsigniertes, abgelaufenes oder für einen falschen Hostnamen ausgestelltes Zertifikat vorweist, ohne jede Warnung akzeptiert wird, bis die Eigenschaft auf True gesetzt wird. Bei SChannel erfolgt die Validierung dann anhand des Windows-Zertifikatspeichers; OnSChannelVerifyPeer ermöglicht es der Anwendung, die Kette zu prüfen oder ein Zertifikat zu akzeptieren, das andernfalls abgelehnt würde.

VerifyCertificate sagt nichts darüber aus, ob das Zertifikat seit seiner Ausstellung widerrufen wurde, sodass sich ein gestohlener Schlüssel, dessen Zertifikat widerrufen, aber noch nicht abgelaufen ist, weiterhin erfolgreich authentifiziert. Mit iohSChannel wird der Widerrufsstatus nur dann geprüft, wenn SChannel_Options.Revocation.Check auf einen anderen Wert als scrcDisabled (Standard) gesetzt ist: scrcEndCertificate prüft ausschließlich das Serverzertifikat, scrcChainExcludeRoot prüft es zusammen mit den Zwischenzertifikaten und scrcChain schließt das Stammzertifikat ein. Revocation.Timeout begrenzt den gesamten Abruf über CRL und OCSP (standardmäßig 5000 ms), sodass ein nicht erreichbarer Responder den Handshake nicht blockieren kann, Revocation.CacheOnly verwendet nur das, was Windows bereits zwischengespeichert hat, und greift nie auf das Netzwerk zu, und Revocation.IgnoreRevocationOffline sowie Revocation.IgnoreNoRevocationCheck (beide True) entscheiden, ob ein nicht erreichbarer Responder oder ein Zertifikat ohne veröffentlichte Widerrufsinformationen akzeptiert wird. Ein Zertifikat, dessen Widerruf bestätigt ist, wird immer abgelehnt. Siehe SChannel Certificate Revocation.

Preset wendet einen Satz sicherer Standardwerte in einer einzigen Zuweisung an. Mit tlspCustom (Standard) behält jede Option den manuell konfigurierten Wert, wodurch das bisherige Verhalten erhalten bleibt. Das Setzen von Preset := tlspSecureDefaults aktiviert die Zertifikatsprüfung (VerifyCertificate := True), hebt Version auf mindestens TLS 1.2 an (wenn eine niedrigere oder nicht definierte Version konfiguriert war), aktiviert die Hostnamen-Prüfung des Serverzertifikats (OpenSSL-Hostnamen-Validierung über X509Checks) und aktiviert die SChannel-Widerrufsprüfung als scrcChainExcludeRoot. Einzelne Optionen können nach dem Anwenden des Presets weiterhin angepasst werden.

Beispiel


oClient := TsgcWebSocketClient.Create(nil);
oClient.URL := 'wss://www.esegece.com:2053';
oClient.TLSOptions.Version := tls1_2;
oClient.TLSOptions.VerifyCertificate := true;
oClient.TLSOptions.RootCertFile := 'cacert.pem';
oClient.Active := true;

Zurück zu Properties