我试图做一些似乎是非常基本的(而且是显而易见的),但是它不起作用,所以也许我没有正确实现这个想法,这就是为什么我需要你的帮助。
我有一个IIS7的Web服务器(如果它只适用于IIS7.5,我也有它可用)与网站configuration为端口80,并与SSL证书configuration为端口443。
在这个网站下,我有两个运行.NET应用程序的应用程序文件夹。 像下面的树一样:
- 服务器名称 - 网站 --- MyAppsWebSite ---- ApplicationFolder1 ---- ApplicationFolder2
我正在组织这样的服务器,所以我不会有任何应用程序运行在网站的根目录,以避免由于configuration的inheritance混淆和configuration共享。
我需要做的是有一个子域映射到本网站的每个应用程序。 像这样的东西:
app1.myDomain.com - > ApplicationFolder1 app2.myDomain.com - > ApplicationFolder2
但据我所知,我只能将子域映射到特定的网站(使用主机名),而不是一个应用程序,所以我无法使其工作。
一种可能性是为每个应用程序创build一个网站,但是因为我们不能有两个网站共享相同的端口(80/443),所以我将无法使用SSL证书。
有没有办法可以在IIS中完成,或者我错过了一些东西,试图做一些不可能的事情?
谢谢
你正试图做一些不可能的事情!
其实,并不是不可能,但是你现在的证书是不可能的。 请记住,看到名字的关键方是客户。 你基本上描述了你希望客户端看到的布局,这将决定你如何configuration服务器。 你不能要求服务器“把这个目录当作一个网站”,因为这是一个网站 – 它是一个与目录分层组相对应的命名空间,并且你已经描述了你的网站/目录; 网站/网站无法从URL透视图中运行。
所以:是的! 您需要为这些主机名创build实际的网站对象,可能使用主机头支持,并直接将它们指向应用程序目录。 这将只适用于HTTP,但SSL更棘手。
这意味着,如果您只有一个IP地址,则需要具有SAN(主题备用名称)支持的证书以及服务器将响应的每个名称的条目或通配符证书。
有了这些实现,你可以直接编辑configuration来添加SSL主机头绑定在 – 我不认为graphics用户界面让你(可能会误)。
您也可以实现某种forms的应用程序代理(ARR; ISA; TMG; UAG; Squid; Apache等),将https://app1.yourdomain.com的请求转换为http://yourserver.yourdomain.com/app1 ,但该代理的证书要求将是相同的。