You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

求助:如何仅针对IIS或特定站点禁用TLS 1.0和TLS 1.1?

嗨,这个问题我之前帮客户处理过,全局禁用TLS 1.0/1.1确实会牵连到服务器上的其他服务(比如SQL Server),毕竟SQL Server 2012默认依赖这些旧协议。下面给你两个精准的解决方案,既能满足网站禁用旧TLS的需求,又不影响SQL Server的正常运行:

方法1:针对单个IIS站点配置(适合只需要限制特定站点的场景)

如果你只需要让某一个网站禁用TLS 1.0和TLS 1.1,推荐用这个方式:

图形界面操作步骤

  1. 打开IIS管理器,找到目标站点,右键选择【编辑绑定】
  2. 选中该站点的HTTPS绑定,点击【编辑】按钮
  3. 回到站点主页,找到【SSL设置】功能,点击进入
  4. 点击页面右侧的【高级】按钮
  5. 在协议列表中,只勾选TLS 1.2,取消勾选TLS 1.0、TLS 1.1以及旧的SSL协议
  6. 点击确定保存配置,重启站点生效

PowerShell命令操作(更高效)

如果你习惯用命令行,直接运行以下命令替换站点名称即可:

# 替换为你的目标站点名称
$siteName = "你的网站名称"
# 配置站点仅允许TLS 1.2
Set-WebConfigurationProperty -Filter "system.webServer/security/access" -Name "sslFlags" -Value "Ssl, Tls12" -PSPath "IIS:\Sites\$siteName"
# 重启站点使配置生效
Restart-WebItem -PSPath "IIS:\Sites\$siteName"

方法2:全局配置所有IIS站点(适合服务器上所有网站都需要禁用旧TLS的场景)

如果服务器上的所有网站都需要禁用TLS 1.0/1.1,可以直接给IIS服务器全局设置,新建站点会自动继承这个配置:

# 全局配置IIS仅允许TLS 1.2
Set-WebConfigurationProperty -Filter "system.webServer/security/access" -Name "sslFlags" -Value "Ssl, Tls12" -PSPath "IIS:\"
# 重启IIS服务生效
Restart-Service W3SVC

关键注意事项

  1. 保持系统层面的TLS 1.0/1.1启用:不要修改系统注册表中HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols下的TLS 1.0/1.1开关,这样SQL Server 2012就能正常使用这些协议了
  2. 验证配置效果:可以用openssl命令测试站点的协议支持,比如运行openssl s_client -connect yourdomain.com:443 -tls1,如果连接失败,说明TLS 1.0已经被成功禁用
  3. 证书兼容性:确保你的网站SSL证书支持TLS 1.2(绝大多数现代证书都支持,老旧证书可能需要更换)

内容的提问来源于stack exchange,提问作者Steen

火山引擎 最新活动