How to programmatically determine the SSL / TLS protocols enabled on a Windows server

Which SSL or TLS protocols supported by a particular Windows server, and which of them are included, are stored in the registry at:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols 

Does .NET support any simple way to list and examine these protocols, so an application running on the server can determine which ones are included?

I know I can query the registry, but there are problems with this:

  • Changes to these registry entries do not take effect until the server reboots - I need to know the protocols currently in force
  • It is not clear what effect the various meanings have. There is a DisabledByDefault value and an Enabled value - most articles say 0 and 1 mean the protocol is enabled, but what do 1 and 1 mean? Some articles vaguely indicate that Enabled should be 0xffffffff not 1.
+5
source share

Source: https://habr.com/ru/post/1241606/


All Articles