为什么这个主机头要转到另一个站点?

为什么这个主机头要转到另一个站点?

我有两个网站:Prod 和 Train

在我的主机文件中有两个条目:

xxx.xx.xxx.xxx    prod.site.com  
xxx.xx.xxx.xxx    train.site.com

我在 IIS7 中建立了两个独立的网站,Prod 和 Train。

Prod 站点具有以下绑定:

http   Prod   80   *
https         443  *

Train 网站有:

http   Train  80   *

http:// 适用于 train 但不适用于 prod(启用了需要 SSL 标志),https:// 适用于两者,除了https://train.site.com正在加载生产网站而不是训练网站。

这可能是一个愚蠢的问题,但我怎样才能改变绑定,以便https://train.site.com不起作用或至少重定向到 http://?如果有人不小心输入了 https://,我不希望他们以为自己正在接受培训,然后开始在生产站点上乱搞。

我模糊地知道它为什么会这样做,但不知道如何在不中断生产的情况下修复它。

答案1

您的prod网站正在接受所有 IP 地址上的所有 https 连接并为它们提供服务,而不管客户端提供的主机头是什么。

要将该绑定更改为仅接受具有正确主机标头的连接,您需要调用 IIS 命令行工具。删除接受所有请求的现有 https 绑定,然后在 (UAC 升级的) 命令提示符中运行类似下面的命令,将我对 IIS 站点名称的假设替换为正确的信息:

cd \windows\system32\inetsrv
appcmd set site /site.name:"prod" /+bindings.[protocol='https',bindingInformation='*:443:prod.site.com']

相关内容