.NET 4.5应用启用TLS1.2需升级到4.7还是仅修改Web.config配置
.NET Framework 启用TLS1.2无需硬编码的配置方案
仅修改Web.config即可生效的前提
- 服务器上必须已安装.NET Framework 4.7或更高版本的运行时环境
- 在Web.config的
<system.web>节点下添加如下两行配置即可:<httpRuntime targetFramework="4.7" /> <compilation targetFramework="4.7" /> - 原理说明:
targetFramework参数会触发.NET运行时启用对应版本的默认行为规则,4.7及以上版本默认不再固定安全协议版本,会自动继承操作系统Schannel配置中的可用TLS版本(默认包含TLS1.2),完全不需要硬编码ServicePointManager.SecurityProtocol参数。
需要升级项目目标框架和依赖的场景
- 如果你使用的第三方依赖库存在硬编码TLS版本的逻辑,或者仅在适配.NET 4.7+的版本中才支持跟随系统默认TLS配置,需要将对应依赖包升级到兼容.NET 4.7的版本
- 如果你需要使用.NET 4.7新增的API,或者要彻底消除编译时的框架版本不匹配警告,建议直接将项目的目标框架整体升级为.NET Framework 4.7,同时升级所有NuGet包到对应兼容版本。.NET Framework 4.x系列高度向后兼容,4.5版本的代码几乎不需要修改即可正常运行在4.7环境下,迁移风险极低。
注意事项
- 操作系统层面必须先启用TLS1.2的Schannel配置,否则.NET侧的所有配置都不会生效
- 配置完成后可以通过抓包、或访问仅支持TLS1.2的测试站点验证配置是否生效
内容的提问来源于stack exchange,提问作者Evgheni P
相关产品推荐
相关产品推荐

