IIS 7.5访问https://non-ssl-test.com显示错误站点,需使其访问失败
解决IIS 7.5中HTTPS访问无SSL绑定站点跳转到其他站点的问题
这是个典型的IIS SSL绑定优先级导致的问题,我来给你一步步讲清楚怎么解决,让访问https://non-ssl-test.com时直接返回失败:
核心原因
IIS在处理HTTPS请求时,如果请求的域名没有对应的443端口SSL绑定,它会自动 fallback到服务器上第一个配置了443端口的站点来响应,这就是为什么你访问https://non-ssl-test.com会显示secure-site.com的内容。
解决方案
方法1:添加无效SSL绑定+配置错误页
这是最直接的方式,让IIS能识别该域名的HTTPS请求,然后直接返回错误:
- 打开IIS管理器,找到
non-ssl-test.com站点,右键选择编辑绑定 - 点击添加,类型选
https,端口填443,主机名输入non-ssl-test.com - 证书随便选一个(哪怕是不匹配的自签证书也没关系,我们的目的只是让IIS识别这个绑定)
- 保存绑定后,进入该站点的错误页功能:
- 找到错误代码
403.4(SSL Required),编辑它的响应动作,选择返回自定义错误页,设置状态码为403;或者直接选择响应状态码并设置为403,这样用户访问时就会直接看到禁止访问的错误。
- 找到错误代码
方法2:用URL重写模块拦截HTTPS请求
如果你已经安装了IIS URL重写模块,可以通过规则直接拦截所有HTTPS请求并返回错误:
- 进入
non-ssl-test.com站点的URL重写功能 - 点击添加规则,选择空白规则:
- 名称:
Block HTTPS Requests - 匹配URL:模式选
.*,使用正则表达式 - 条件:添加一个条件,输入
{HTTPS},匹配模式填^ON$(意思是当HTTPS开启时触发) - 操作:选择自定义响应,状态码填
403,状态描述写HTTPS Access Not Allowed,响应内容可以写Please use HTTP to access this site.
- 名称:
- 保存规则后,所有HTTPS访问该站点的请求都会直接返回403错误。
内容的提问来源于stack exchange,提问作者Stefan Thüring
相关产品推荐
相关产品推荐

