TsgcWebSocketClientProperties › TLSOptions

TLSOptions Eigenschap

Configureert certificaten, TLS-versie, ALPN, IOHandler en andere details voor beveiligde verbindingen die worden gebruikt wanneer TLS is ingeschakeld.

Syntaxis

property TLSOptions: TsgcWSTLS_Options read FTLSOptions write SetTLSOptions;

Standaardwaarde

Preset=tlspCustom

Opmerkingen

Alleen toegankelijk wanneer TLS True is. Subeigenschappen omvatten RootCertFile, CertFile, KeyFile, Password, VerifyCertificate, VerifyDepth, Version (van tlsUndefined tot en met tls1_3), ALPNProtocols en IOHandler (iohOpenSSL, iohSChannel, iohAndroidTLS of iohAppleTLS). Op Android gebruikt iohAndroidTLS de native TLS van het platform (javax.net.ssl.SSLEngine) en op iOS en macOS gebruikt iohAppleTLS de native TLS van Apple, zodat er geen OpenSSL-bibliotheken hoeven te worden gedistribueerd; native platform-TLS vereist de Enterprise-editie. OpenSSL-specifieke instellingen bevinden zich onder OpenSSL_Options en SChannel-specifieke instellingen onder SChannel_Options.

VerifyCertificate regelt certificaatvalidatie op dezelfde manier voor elke IOHandler, inclusief iohSChannel: de eigenschap staat standaard op False, zodat een server die een zelfondertekend of verlopen certificaat, of een certificaat voor een onjuiste hostnaam presenteert, zonder enige waarschuwing wordt geaccepteerd totdat dit op True wordt gezet. Bij SChannel wordt de validatie vervolgens uitgevoerd aan de hand van het Windows-certificaatarchief; OnSChannelVerifyPeer stelt de toepassing in staat om de keten te inspecteren of om een certificaat te accepteren dat anders zou worden geweigerd.

VerifyCertificate zegt niets over de vraag of het certificaat sinds de uitgifte is ingetrokken, zodat een gestolen sleutel waarvan het certificaat is ingetrokken maar nog niet is verlopen, zich nog steeds met succes authenticeert. Met iohSChannel wordt de intrekkingsstatus alleen gecontroleerd wanneer SChannel_Options.Revocation.Check op iets anders dan scrcDisabled (de standaardwaarde) is ingesteld: scrcEndCertificate controleert alleen het servercertificaat, scrcChainExcludeRoot controleert dit samen met de tussenliggende certificaten en scrcChain neemt ook het rootcertificaat mee. Revocation.Timeout begrenst het volledige ophalen van CRL- en OCSP-gegevens (standaard 5000 ms), zodat een onbereikbare responder de handshake niet kan blokkeren, Revocation.CacheOnly gebruikt alleen wat Windows al in de cache heeft opgeslagen en gaat nooit het netwerk op, en Revocation.IgnoreRevocationOffline en Revocation.IgnoreNoRevocationCheck (beide True) bepalen of een onbereikbare responder of een certificaat dat geen intrekkingsinformatie publiceert wordt geaccepteerd. Een certificaat waarvan is bevestigd dat het is ingetrokken, wordt altijd geweigerd. Zie SChannel Certificate Revocation.

Preset past een set veilige standaardwaarden toe in één enkele toewijzing. Met tlspCustom (standaard) behoudt elke optie de waarde die u handmatig configureert, waardoor het eerdere gedrag behouden blijft. Het instellen van Preset := tlspSecureDefaults schakelt certificaatverificatie in (VerifyCertificate := True), verhoogt Version naar minimaal TLS 1.2 (wanneer een lagere of ongedefinieerde versie was geconfigureerd) en schakelt hostnaamcontrole van het servercertificaat in (OpenSSL X509Checks-hostnaamvalidatie) en schakelt de SChannel-intrekkingscontrole in als scrcChainExcludeRoot. Afzonderlijke opties kunnen na het toepassen van de preset nog steeds worden aangepast.

Voorbeeld


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;

Terug naar Properties