Enable-TlsCipherSuite
Enables a TLS cipher suite.
Syntax
Enable-TlsCipherSuite
[[-Position] <UInt32>]
[-Name] <String>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
The Enable-TlsCipherSuite cmdlet enables a cipher suite. This cmdlet adds the cipher suite to the list of Transport Layer Security (TLS) protocol cipher suites for the computer. If you do not specify a position in the list, this cmdlet adds it at the lowest position. No restart is required for changes to take effect.
If a cipher suite is not enabled for TLS based secure channel (Schannel) registry settings, then the cipher suite is not used.
This cmdlet is based on Cryptography Next Generation (CNG) Cryptographic Configuration. Schannel registry settings and settings specified by means of Security Support Provider Interface (SSPI) by each app can override CNG Cryptographic Configuration. Other settings under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL can also configure cipher suites. These settings can impact whether a cipher suite can be used. For example, disabling of SHA hashes supported by TLS disables the corresponding cipher suites. Additionally, applications can limit the algorithms using SSPI. For more information about TLS settings, see How to restrict the use of certain cryptographic algorithms and protocols in Schannel.dll.
Examples
Example 1: Enable a cipher suite
PS C:\>Enable-TlsCipherSuite -Name "TLS_DHE_DSS_WITH_AES_256_CBC_SHA"
This command enables cipher suite named TLS_DHE_DSS_WITH_AES_256_CBC_SHA. This command adds the cipher suite the TLS cipher suite list as the lowest priority.
Example 2: Enable a cipher suite as the lowest priority
PS C:\>Enable-TlsCipherSuite -Name "TLS_DHE_DSS_WITH_AES_256_CBC_SHA" -Position 4294967295
This command enables cipher suite named TLS_DHE_DSS_WITH_AES_256_CBC_SHA. This command adds the cipher suite the TLS cipher suite list as the lowest priority. Unlike the first example, this command explicitly specifies position number 4294967295, which is the value of CRYPT_PRIORITY_BOTTOM.
Example 3: Enable a cipher suite as the highest priority
PS C:\>Enable-TlsCipherSuite -Name "TLS_DHE_DSS_WITH_AES_256_CBC_SHA" -Position 0
This command enables cipher suite named TLS_DHE_DSS_WITH_AES_256_CBC_SHA. This command adds the cipher suite the TLS cipher suite list at position 0, which is the highest priority.
Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Specifies the name of the TLS cipher suite to enable.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Position
Specifies the position at which to insert the cipher suite in the ordered list of TLS cipher suites. The cmdlet inserts the cipher suite at the position that this parameter specifies, ahead of any existing cipher suites.
Specify a value of 0 or CRYPT_PRIORITY_TOP to insert the function at the top of the list. Specify a value of 4294967295 or 0xFFFFFFFF or CRYPT_PRIORITY_BOTTOM to insert the function at the end of the list.
Type: | UInt32 |
Position: | 2 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |