在命令提示符处输入
gpedit.msc
。 此时将显示
组策略对象编辑器
。
展开
“计算机配置”、“
管理模板
”、“
网络
”,然后单击“
SSL 配置设置
”。
在
“SSL 配置设置”
下,单击“
SSL 密码套件顺序
”设置。
在
“SSL 密码套件顺序
”窗格中,滚动到窗格底部。
按照标记为
“如何修改此设置
”的说明进行操作。
修改此设置后,必须重新启动计算机,更改才能生效。
密码套件列表限制为 1023 个字符。
若要确定 Schannel 密码套件的优先级,请参阅以下示例。
列出受支持的密码套件
添加、删除和确定密码套件的优先级
列出受支持的密码套件
调用
BCryptEnumContextFunctions
函数以按优先级顺序列出提供程序支持的密码套件。
以下示例演示如何使用
BCryptEnumContextFunctions
函数列出受支持的密码套件。
#include <stdio.h>
#include <windows.h>
#include <bcrypt.h>
void main()
HRESULT Status = ERROR_SUCCESS;
DWORD cbBuffer = 0;
PCRYPT_CONTEXT_FUNCTIONS pBuffer = NULL;
Status = BCryptEnumContextFunctions(
CRYPT_LOCAL,
L"SSL",
NCRYPT_SCHANNEL_INTERFACE,
&cbBuffer,
&pBuffer);
if(FAILED(Status))
printf_s("\n**** Error 0x%x returned by BCryptEnumContextFunctions\n", Status);
goto Cleanup;
if(pBuffer == NULL)
printf_s("\n**** Error pBuffer returned from BCryptEnumContextFunctions is null");
goto Cleanup;
printf_s("\n\n Listing Cipher Suites ");
for(UINT index = 0; index < pBuffer->cFunctions; ++index)
printf_s("\n%S", pBuffer->rgpszFunctions[index]);
Cleanup:
if (pBuffer != NULL)
BCryptFreeBuffer(pBuffer);
添加、删除和确定密码套件的优先级
调用 BCryptAddContextFunction 和 BCryptRemoveContextFunction 函数,以从支持的密码套件列表中添加和删除密码套件。
添加密码套件时,请将 BCryptAddContextFunction 函数的 dwPosition 参数的值设置为 CRYPT_PRIORITY_TOP,以将其添加到优先级列表的顶部,或CRYPT_PRIORITY_BOTTOM将其添加到列表底部。
若要确定密码套件列表的优先级,请从列表中删除所有密码套件,然后按所需顺序将密码套件添加到列表中。
以下示例演示如何将密码套件添加到默认 Microsoft Schannel 提供程序的优先级列表顶部。
#include <stdio.h>
#include <windows.h>
#include <bcrypt.h>
void main()
SECURITY_STATUS Status = ERROR_SUCCESS;
LPWSTR wszCipher = (L"RSA_EXPORT1024_DES_CBC_SHA");
Status = BCryptAddContextFunction(
CRYPT_LOCAL,
L"SSL",
NCRYPT_SCHANNEL_INTERFACE,
wszCipher,
CRYPT_PRIORITY_TOP);
以下示例演示如何从默认 Microsoft Schannel 提供程序的优先级列表中删除密码套件。
#include <stdio.h>
#include <windows.h>
#include <bcrypt.h>
void main()
SECURITY_STATUS Status = ERROR_SUCCESS;
LPWSTR wszCipher = (L"TLS_RSA_WITH_RC4_128_SHA");
Status = BCryptRemoveContextFunction(
CRYPT_LOCAL,
L"SSL",
NCRYPT_SCHANNEL_INTERFACE,
wszCipher);