TsgcWebSocketServer › Özellikler › SSLOptions
TLS dinleyicisi için sertifika yollarını, TLS sürüm seçimini ve OpenSSL ayarlamasını tutar.
property SSLOptions: TsgcWSSSL_Options read FSSLOptions write SetSSLOptions;
Version=tlsUndefined, VerifyCertificate=False
SSL True olduğunda sunucuyu etkinleştirmeden önce sertifika materyalini sağlayın: RootCertFile, CertFile ve KeyFile, PEM dosyalarını işaret eder (dosya tam zinciri içerdiğinde üçü için de aynı yolu kullanın) ve Password yalnızca özel anahtar şifrelenmişse gereklidir. İstemci sertifikalarını istemek ve doğrulamak için VerifyCertificate öğesini True olarak ayarlayın (alt seçenekler FailIfNoCertificate ve VerifyClientOnce denetimi inceler) ve VerifyDepth zincir uzunluğunu kontrol eder. Version, belirli bir TLS sürümünü seçer (tls1_0, tls1_1, tls1_2, tls1_3) veya müzakereyi açık bırakır (tlsUndefined). OpenSSL_Options düşük seviyeli ayarları sunar: APIVersion (oslAPI_1_0/oslAPI_1_1/oslAPI_3_0), OpenSSL ikili dosyalarını bulmak için LibPath/LibPathCustom, UnixSymLinks, ECDHE, CipherList, CurveList, MinVersion ve hostname/IP doğrulaması için X509Checks.
VerifyCertificate, istemci sertifikasının düzenlendiğinden bu yana iptal edilip edilmediği hakkında hiçbir şey söylemez; bu nedenle anahtarı çalınmış ve seri numarası o zamandan beri iptal edilmiş bir sertifika, süresi dolana kadar hâlâ bir oturum açar. IOHandler=iohSChannel ile istemci sertifikasının iptal durumu yalnızca SChannel_Options.Revocation.Check varsayılan olan scrcDisabled dışında bir değere ayarlandığında sorgulanır: scrcEndCertificate yalnızca istemci sertifikasını denetler, scrcChainExcludeRoot onu ara sertifikalarla birlikte denetler ve scrcChain kökü de kapsar. Revocation.Timeout, CRL ve OCSP alımının tamamını sınırlar (varsayılan 5000 ms), böylece erişilemeyen bir yanıtlayıcı handshake'i askıda bırakamaz; Revocation.CacheOnly yalnızca Windows'un zaten önbelleğe almış olduğunu kullanır ve hiçbir zaman ağa gitmez; Revocation.IgnoreRevocationOffline ve Revocation.IgnoreNoRevocationCheck (her ikisi de True) erişilemeyen bir yanıtlayıcının veya hiçbir iptal bilgisi yayımlamayan bir istemci sertifikasının kabul edilip edilmeyeceğine karar verir. İptal edildiği doğrulanmış bir sertifika her zaman reddedilir. Preset := tlspSecureDefaults ayarlanması denetimi scrcChainExcludeRoot olarak etkinleştirir ve her iki yumuşak hata ayarını korur, böylece daha önce kabul edilen bir istemci kabul edilmeye devam eder. Bkz. Server SSL | SChannel Client Certificate Revocation.
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;