TsgcWebSocketClient › Özellikler › TLSOptions
TLS etkinleştirildiğinde kullanılan sertifikaları, TLS sürümünü, ALPN'yi, IOHandler'ı ve diğer güvenli bağlantı ayrıntılarını yapılandırır.
property TLSOptions: TsgcWSTLS_Options read FTLSOptions write SetTLSOptions;
Preset=tlspCustom
Yalnızca TLS True olduğunda erişilebilir. Alt özellikler şunları içerir: RootCertFile, CertFile, KeyFile, Password, VerifyCertificate, VerifyDepth, Version (tlsUndefined'dan tls1_3'e kadar), ALPNProtocols ve IOHandler (iohOpenSSL, iohSChannel, iohAndroidTLS veya iohAppleTLS). Android'de iohAndroidTLS platformun yerel TLS'sini (javax.net.ssl.SSLEngine) kullanır ve iOS ile macOS'ta iohAppleTLS Apple yerel TLS'sini kullanır, böylece hiçbir OpenSSL kütüphanesinin dağıtılması gerekmez; yerel platform TLS'si Enterprise sürümünü gerektirir. OpenSSL'e özgü ayarlar OpenSSL_Options altında ve SChannel'a özgü ayarlar SChannel_Options altında bulunur.
VerifyCertificate, iohSChannel dahil olmak üzere her IOHandler için sertifika doğrulamasını aynı şekilde denetler: varsayılan olarak False'dur, bu nedenle kendinden imzalı, süresi dolmuş veya yanlış ana bilgisayar adına sahip bir sertifika sunan bir sunucu, True olarak ayarlanana kadar hiçbir uyarı olmadan kabul edilir. SChannel ile doğrulama, ardından Windows sertifika deposuna göre gerçekleştirilir; OnSChannelVerifyPeer, uygulamanın zinciri incelemesine veya aksi takdirde reddedilecek bir sertifikayı kabul etmesine olanak tanır.
VerifyCertificate, sertifikanın düzenlendiğinden bu yana iptal edilip edilmediği hakkında hiçbir şey söylemez, bu nedenle sertifikası iptal edilmiş ancak henüz süresi dolmamış çalınmış bir anahtar yine de kimlik doğrulamasından geçer. iohSChannel ile iptal durumu yalnızca SChannel_Options.Revocation.Check, scrcDisabled (varsayılan) dışında bir değere ayarlandığında denetlenir: scrcEndCertificate yalnızca sunucu sertifikasını denetler, scrcChainExcludeRoot onu ara sertifikalarla birlikte denetler ve scrcChain kökü de kapsar. Revocation.Timeout, erişilemeyen bir yanıtlayıcının handshake'i askıda bırakamaması için CRL ve OCSP bilgisinin tamamının alınmasını sınırlar (varsayılan 5000 ms), 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) ise erişilemeyen bir yanıtlayıcının veya hiçbir iptal bilgisi yayımlamayan bir sertifikanın kabul edilip edilmeyeceğine karar verir. İptal edildiği doğrulanan bir sertifika her zaman reddedilir. Bkz. SChannel Certificate Revocation.
Preset, tek bir atamayla bir dizi güvenli varsayılan uygular. tlspCustom (varsayılan) ile her seçenek elle yapılandırdığınız değeri korur ve önceki davranış korunur. Preset := tlspSecureDefaults ayarlandığında sertifika doğrulaması etkinleştirilir (VerifyCertificate := True), Version en az TLS 1.2'ye yükseltilir (daha düşük veya tanımsız bir sürüm yapılandırılmışsa) ve sunucu sertifikasının ana bilgisayar adı denetimi etkinleştirilir (OpenSSL X509Checks ana bilgisayar adı doğrulaması) ve SChannel iptal denetimi scrcChainExcludeRoot olarak etkinleştirilir. Ön ayar uygulandıktan sonra tek tek seçenekler yine de ayarlanabilir.
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;