TsgcWebSocketServer › Propriétés › SSLOptions

SSLOptions Propriété

Contient les chemins de certificat, la sélection de version TLS et le réglage OpenSSL pour l'écouteur TLS.

Syntaxe

property SSLOptions: TsgcWSSSL_Options read FSSLOptions write SetSSLOptions;

Valeur par défaut

Version=tlsUndefined, VerifyCertificate=False

Remarques

Fournissez le matériel de certificat avant d'activer le serveur lorsque SSL est True : RootCertFile, CertFile et KeyFile pointent vers des fichiers PEM (utilisez le même chemin pour les trois si le fichier contient la chaîne complète), et Password n'est requis que si la clé privée est chiffrée. Définissez VerifyCertificate sur True pour demander et valider les certificats client (les sous-options FailIfNoCertificate et VerifyClientOnce affinent la vérification) avec VerifyDepth contrôlant la longueur de la chaîne. Version sélectionne une version TLS spécifique (tls1_0, tls1_1, tls1_2, tls1_3) ou laisse la négociation ouverte (tlsUndefined). OpenSSL_Options expose des réglages de bas niveau : APIVersion (oslAPI_1_0/oslAPI_1_1/oslAPI_3_0), LibPath/LibPathCustom pour localiser les binaires OpenSSL, UnixSymLinks, ECDHE, CipherList, CurveList, MinVersion et X509Checks pour la validation du nom d'hôte/IP.

VerifyCertificate ne dit rien sur le fait que le certificat client ait été révoqué ou non depuis sa délivrance, un certificat dont la clé a été volée et dont le numéro de série a depuis été révoqué ouvre donc toujours une session jusqu'à son expiration. Avec IOHandler=iohSChannel, le statut de révocation du certificat client n'est consulté que lorsque SChannel_Options.Revocation.Check est défini sur une valeur autre que scrcDisabled (la valeur par défaut) : scrcEndCertificate vérifie le certificat client seul, scrcChainExcludeRoot le vérifie avec les certificats intermédiaires, et scrcChain inclut la racine. Revocation.Timeout borne l'ensemble de la récupération CRL et OCSP (5000 ms par défaut) afin qu'un répondeur inaccessible ne puisse pas bloquer le handshake, Revocation.CacheOnly n'utilise que ce que Windows a déjà mis en cache et ne va jamais sur le réseau, et Revocation.IgnoreRevocationOffline et Revocation.IgnoreNoRevocationCheck (toutes deux à True) décident si un répondeur inaccessible ou un certificat client ne publiant aucune information de révocation est accepté. Un certificat confirmé révoqué est toujours rejeté. Définir Preset := tlspSecureDefaults active la vérification en tant que scrcChainExcludeRoot et conserve les deux réglages soft-fail, de sorte qu'un client qui était admis auparavant l'est toujours. Consultez Server SSL | SChannel Révocation des certificats clients.

Exemple


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;

Retour aux propriétés