TsgcWebSocketServerEigenschappen › SSLOptions

SSLOptions Eigenschap

Bevat certificaatpaden, TLS-versieselectie en OpenSSL-afstemming voor de TLS-luisteraar.

Syntaxis

property SSLOptions: TsgcWSSSL_Options read FSSLOptions write SetSSLOptions;

Standaardwaarde

Version=tlsUndefined, VerifyCertificate=False

Opmerkingen

Lever het certificaatmateriaal aan voordat u de server activeert wanneer SSL True is: RootCertFile, CertFile en KeyFile verwijzen naar PEM-bestanden (gebruik hetzelfde pad voor alle drie wanneer het bestand de volledige keten bevat), en Password is alleen vereist als de private key versleuteld is. Stel VerifyCertificate in op True om clientcertificaten op te vragen en te valideren (de subopties FailIfNoCertificate en VerifyClientOnce verfijnen de controle) waarbij VerifyDepth de ketenlengte bepaalt. Version kiest een specifieke TLS-versie (tls1_0, tls1_1, tls1_2, tls1_3) of laat de onderhandeling open (tlsUndefined). OpenSSL_Options stelt low-level-instellingen beschikbaar: APIVersion (oslAPI_1_0/oslAPI_1_1/oslAPI_3_0), LibPath/LibPathCustom voor het lokaliseren van de OpenSSL-binaries, UnixSymLinks, ECDHE, CipherList, CurveList, MinVersion en X509Checks voor hostnaam-/IP-validatie.

VerifyCertificate zegt niets over de vraag of het clientcertificaat sinds de uitgifte is ingetrokken, dus een certificaat waarvan de sleutel is gestolen en waarvan het serienummer sindsdien is ingetrokken, opent nog steeds een sessie totdat het verloopt. Met IOHandler=iohSChannel wordt de intrekkingsstatus van het clientcertificaat alleen opgezocht wanneer SChannel_Options.Revocation.Check op iets anders dan scrcDisabled (de standaardwaarde) is ingesteld: scrcEndCertificate controleert alleen het clientcertificaat, scrcChainExcludeRoot controleert het samen met de tussenliggende certificaten, en scrcChain neemt 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 en gaat nooit het netwerk op, en Revocation.IgnoreRevocationOffline en Revocation.IgnoreNoRevocationCheck (beide True) bepalen of een onbereikbare responder of een clientcertificaat dat geen intrekkingsinformatie publiceert wordt geaccepteerd. Een certificaat dat bevestigd ingetrokken is, wordt altijd geweigerd. Door Preset := tlspSecureDefaults in te stellen wordt de controle ingeschakeld als scrcChainExcludeRoot en blijven beide soft-fail-instellingen behouden, zodat een client die voorheen werd toegelaten nog steeds wordt toegelaten. Zie Server SSL | Intrekking van clientcertificaten in SChannel.

Voorbeeld


oServer := TsgcWebSocketServer.Create(nil);
oServer.SSL := true;
oServer.SSLOptions.CertFile := 'c:\certificates\mycert.pem';
oServer.SSLOptions.KeyFile := 'c:\certificates\mycert.pem';
oServer.SSLOptions.RootCertFile := 'c:\certificates\mycert.pem';
oServer.SSLOptions.Version := tls1_3;
oServer.SSLOptions.OpenSSL_Options.MinVersion := tls1_2;
oServer.SSLOptions.Port := 443;
oServer.Active := true;

Terug naar Properties