多个 SSL 域具有一个 IP 地址但具有不同的端口?

多个 SSL 域具有一个 IP 地址但具有不同的端口?

我正在使用 ubuntu 9.10、apache2 和 php5。在一个 IP 地址上托管多个 SSL 站点但使用不同的端口是一个好主意吗?如果是,我应该使用哪些端口?

答案1

使用您喜欢的任何端口,但请注意这可能会给用户带来一些困惑。如果您想这样做,请调整您的 /etc/apache2/ports.conf 文件并添加类似以下内容(端口是证书的一部分):

<IfModule mod_ssl.c>
    # SSL name based virtual hosts are not yet supported, therefore no
    # NameVirtualHost statement here
    NameVirtualHost *:443
    Listen 443
    NameVirtualHost *:442
    Listen 442
</IfModule>

然后编辑 /etc/apache2/sites-enabled/somefile,使其包含如下内容:

<VirtualHost *:443>
   ServerName  blah1.site.com
   more stuff here
</VirtualHost>

<VirtualHost *:442>
   ServerName blah2.site.com
   more stuff here
</VirtualHost>

如果存在问题,您可以使用 mod_rewrite 来隐藏端口。

答案2

我认为这不是一个好主意,因为有许多防火墙被设置为端口过滤器,故意让 80 (http) 和 443 (https) 通过并阻止其他端口。或者他们监控在其他开放端口上使用的协议。因此,你会以这种方式失去部分受众。

另一个让人烦恼的来源是你的用户必须如果他们不想收到证书错误,请记住输入正确的端口号。也就是说:如果https://www.example.com:444/是正确的,https://www.example.com:445/如果端口 445 将该证书用于另一个站点,则会触发错误。

我从未尝试过这样做,但我相信端口号甚至必须是证书的一部分。

根据您的使用情况,您可能更适合使用认证 *.example.com 的通配符证书,并且您可以使用该证书操作任意数量的子域。如果您要扩展,您可以在任意数量的主机上使用它,只要它们尽可能多地到达https://anysubdomain.example.com/

相关内容