如何将System.Net.ServicePointManager.SecurityProtocol默认值设为指定协议集
如何永久设置默认的SecurityProtocol值,无需每次手动执行代码
下面提供两种可行的方法,按需选择:
方法一:通过PowerShell配置文件(仅当前用户生效)
- 打开PowerShell,先查看你的配置文件路径,执行命令:
$PROFILE - 如果提示文件不存在,执行以下命令创建配置文件:
New-Item -Path $PROFILE -ItemType File -Force - 打开配置文件进行编辑,执行命令:
notepad $PROFILE - 在打开的记事本里添加这行代码并保存:
[System.Net.ServicePointManager]::SecurityProtocol = 'ssl3,tls,tls11,tls12' - 重启PowerShell之后,每次打开会话都会自动加载这个设置,不用再手动输入那行代码。
方法二:修改注册表(系统级生效,影响所有.NET应用)
这个方法会让整个系统里的.NET框架应用默认使用指定的安全协议,不止PowerShell:
- 按下Win+R,输入
regedit打开注册表编辑器 - 定位到以下路径(64位系统建议同时检查两个路径):
- 64位应用路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 - 32位应用路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319
- 64位应用路径:
- 在每个路径下,右键新建DWORD(32位)值,命名为
SchUseStrongCrypto,将数值数据设为1 - 可选:如果想让.NET框架跟随系统默认的TLS版本设置,还可以新建一个
SystemDefaultTlsVersions的DWORD值,同样设为1 - 修改完成后重启电脑,设置就会生效。
内容的提问来源于stack exchange,提问作者Lexxy
相关产品推荐
相关产品推荐

