在服务器上托管多个网站时要考虑的事项

时间:2013-12-27 11:39:00

标签: asp.net iis-7 web

我在IIS 7上运行了两个网站。两者都需要SSL。这些网站的端口分别为http:8080 / https:443和http:8087 / https:443。我已经创建了自签名证书并将它们放入受信任的根目录中。两个网站的内容是相同的。以下是我的问题:

  1. 我是否还必须对hosts文件进行一些更改?如果是这样,那么两者都会发生什么变化 服务器和客户

  2. 我需要在地址栏中键入什么才能打开它们? (比如172.16.10.1/website1?)我是否必须指定端口号?

1 个答案:

答案 0 :(得分:1)

对于http流量,您可以拥有许多可能因IP或端口或主机标头或组合而异的网站。

所以在你的情况下它很简单。对于website1,您在端口8080上具有站点绑定,因此URL变为http://172.16.10.1:8080。网站2同上:http://172.16.10.1:8087

为简单起见,您可以在主机标头上进行网站绑定。因此,将IP 172.16.10.1与默认端口80绑定到第一个网站的主机标题“www.website1.com”。其他的Simlary使相同的组合绑定到“www.website2.com”。现在您不需要在URL中指定端口。您可以按照各自的名称打开两个网站。

然而,在https的情况下,它变得有点棘手。证书是基于每台服务器安装的。因此,您必须指定不同的IP端口组合,并且主机头绑定将不起作用。

您拥有的一个选项是使用通配符证书,然后可以将其绑定到每个主机标头。

另一种选择是获得SAN证书(主题备用名称证书)。这将允许您使用相同的IP端口组合对不同的主机头进行绑定。

这篇关于MSDN的优秀文章将帮助您更好地理解它:http://blogs.msdn.com/b/varunm/archive/2013/06/18/bind-multiple-sites-on-same-ip-address-and-port-in-ssl.aspx

关于问题的第一部分:

您无需对hosts文件执行任何操作。如果您拥有适当的第三方证书,则只需在服务器上注册即可。中间和可信根已在客户端上可用。所以在客户端没什么可做的。您可以在IE中打开“选项”,然后选中“内容”标签下的“证书”,以查看发布商列表是否已存在。

但是,如果您使用的是自我证书,则客户端部分很棘手。因为,客户端每次都会继续收到“证书无效”警告。解决此问题的一种方法是在每个客户端上手动安装证书。另一种方法是使用组策略将证书部署到所有客户端。