我正在寻找如何在使用 https 时在 IIS 中强制精确匹配主机名。例如,我想要“https://works.mysite.com/resource“还行,但是”https://noworks.mysite.com/resource“返回 404(假设它们都解析为同一个 IP)。
IIUC,IIS 访问“https://noworks.mysite.com/resource“是得到一个证书警告,如果用户按继续,用户就可以访问该 URL。
我可以通过生成 *.mysite.com SSL 证书来做到这一点,然后在 IIS 中的绑定中指定主机名,但如果开头没有 *,则主机名字段将被禁用并为空白。
我在这里遗漏了一些简单的东西吗?
答案1
你想要的是所谓的“主机头”
您只能在 UI 中为 HTTP 连接执行主机头,对于 SSL,您需要 appcmd:
appcmd 设置站点/site.name:"
<IISSiteName>
" /+bindings.[protocol='https',bindingInformation='*:443:<hostHeaderValue>
']
看这里更多细节