如何在Visual Studio集成IIS Express调试时强制TLS1.2并禁用TLS1.0/1.1
我来帮你搞定这个问题!在Visual Studio搭配IIS Express调试时,要禁用TLS 1.0/1.1并强制使用TLS 1.2,你可以按照下面的步骤一步步操作:
步骤1:修改系统注册表禁用旧版TLS协议(全局生效)
IIS Express依赖系统的SCHANNEL组件处理SSL/TLS连接,所以首先要通过注册表禁用TLS 1.0和1.1,同时确保TLS 1.2处于启用状态:
- 按下Win+R,输入
regedit打开注册表编辑器。 - 导航到以下路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols - 分别创建或修改以下子项和键值:
- 禁用TLS 1.0:
- 创建
TLS 1.0子项,在其下再创建Server和Client子项。 - 在每个子项中新建
DWORD (32位)值:Enabled:设置为0DisabledByDefault:设置为1
- 创建
- 禁用TLS 1.1:
- 重复上述操作,创建
TLS 1.1子项及下属的Server、Client子项,同样设置Enabled=0,DisabledByDefault=1
- 重复上述操作,创建
- 确保TLS 1.2启用:
- 如果没有
TLS 1.2子项,就创建它并添加Server、Client子项。 - 在每个子项中设置:
Enabled:设置为1DisabledByDefault:设置为0
- 如果没有
- 禁用TLS 1.0:
注意:修改注册表后,建议重启电脑,确保设置完全生效。
步骤2:配置IIS Express站点,强制使用TLS 1.2
接下来针对你的调试站点,在IIS Express的配置文件里明确指定只允许TLS 1.2连接:
- 找到
applicationhost.config文件:- 全局配置:
%USERPROFILE%\Documents\IISExpress\config\applicationhost.config - 项目本地配置(优先推荐,仅影响当前项目):项目根目录下的
.vs\{你的项目名}\config\applicationhost.config(.vs是隐藏文件夹,需要开启显示隐藏文件)
- 全局配置:
- 打开文件后,找到对应你的站点的
<site>节点(可通过name属性匹配项目名)。 - 在该站点的
<system.webServer>节点下,添加或修改<security>配置:<system.webServer> <security> <!-- 仅允许TLS 1.2连接 --> <access sslFlags="Ssl12" /> </security> </system.webServer> - 保存文件,关闭并重新打开Visual Studio,重启IIS Express调试服务。
步骤3:验证设置是否生效
完成上面的操作后,你可以通过两种方式验证:
- 浏览器验证:启动调试后,打开浏览器访问你的站点,按下F12打开开发者工具,切换到「网络」标签,刷新页面,查看请求的「协议」列,应该显示
TLS 1.2。 - 命令行验证:使用
curl命令测试(Windows 10及以上自带curl):- 测试TLS 1.0:
curl -v --tlsv1.0 https://localhost:{你的调试端口},应该会出现连接失败的错误。 - 测试TLS 1.2:
curl -v --tlsv1.2 https://localhost:{你的调试端口},应该能正常返回站点内容。
- 测试TLS 1.0:
这样就能确保你的调试环境和生产环境一致,强制使用TLS 1.2,方便你排查禁用旧版TLS后的故障问题啦!
内容的提问来源于stack exchange,提问作者SeyoS
相关产品推荐
相关产品推荐

