我想指出用户test1.domain.com test2.domain.com等没有手动添加在IIS7中的头绑定。 这可能吗? 如果不能自动添加主机头以编程方式?
是的你可以。
可以使用通配符SSL证书和单个IP。
我可以详细说明如何使用自签名通配符进行testing。
先决条件
方法
从命令提示符处执行以下命令
makecert -r -pe -n CN=*.domain.com -ss my -sr currentuser -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 wildcard.domain.cer
然后
现在我们来创build您的Web服务器
删除现有的演示应用程序池和网站
%windir%\system32\inetsrv\Appcmd delete site "Demo 1" %windir%\system32\inetsrv\Appcmd delete site "Demo 2" %windir%\system32\inetsrv\Appcmd delete AppPool "Demo 1 App Pool" %windir%\system32\inetsrv\Appcmd delete AppPool "Demo 2 Portal App Pool"
告诉Windows允许networking服务访问您的通配符证书。 并告诉它将证书绑定到您的IP地址上的端口443
PathToWinHTTPCertCfg\winhttpcertcfg -g -i "wildcard.domain.com.pfx" -c LOCAL_MACHINE\My -a “Network Service” -p MySecretPassword netsh http add sslcert ipport=<YOURLOCALIPADDRESS>:443 certhash=<CERTIFICATE THUMBPRINT> appid=<A GUID IN THE FORM OF {ab3c58f7-8316-42e3-bc6e-771d4ce4b201}>
这是创build应用程序池和网站的代码
%windir%\system32\inetsrv\Appcmd add site -id:100 -name:"Demo 1" -bindings:http/*:80:YOURLOCALIPADDRESS -physicalPath:<PathToDemo1Source> -logfile.directory:<PathToPutLogFilesIn> -traceFailedRequestsLogging.directory:<PathToPutTraceFiles> %windir%\system32\inetsrv\Appcmd set app "Demo 1/" -applicationPool:"Demo 1 App Pool" %windir%\system32\inetsrv\Appcmd set site /site.name:"Demo 1" /+bindings.[protocol='https',bindingInformation='*:443:demo1.domain.com'] %windir%\system32\inetsrv\Appcmd add site -id:200 -name:"Demo 2" -bindings:http/*:80:YOURLOCALIPADDRESS -physicalPath:<PathToDemo2Source> -logfile.directory:<PathToPutLogFilesIn> -traceFailedRequestsLogging.directory:<PathToPutTraceFiles> %windir%\system32\inetsrv\Appcmd set app "Demo 2/" -applicationPool:"Demo 2 App Pool" %windir%\system32\inetsrv\Appcmd set site /site.name:"Demo 2" /+bindings.[protocol='https',bindingInformation='*:443:demo2.domain.com']
…那应该是你;)享受!
据我所知,只有两个选项,当涉及IIS7的主机头。
选项#2的捕获是会响应该端口上的任何请求,并且您将无法在没有主机头的另一个站点上使用相同的端口。
可能有一个ISAPI筛选器可以在服务器级加载,以在请求到达处理的主机头部分之前拦截请求,但可能更容易设置脚本来处理选项#1。
通过设置通配符DNS条目,您可以尽可能多的名称到您的默认网站。 一旦用户点击该网站,如果您需要将其redirect到另一个网站,请让您的default.asp文件查找HOST标题以确定是否需要redirect,否则,请继续并加载网站的其余部分。
参考文献:
通配符主机头与IIS7
HTTP头列表
我对网站开发不是很好,但至less应该让你开始。