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

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

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

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