如何在一个 Apache 实例中合并两个启用 SSL 的服务器?

如何在一个 Apache 实例中合并两个启用 SSL 的服务器?

我有两个不同的网站,foo.combar.com,每个网站都在不同的(虚拟)机器上运行。每个网站都有一个启用 SSL 的 Ruby-on-Rails 网站,运行方式如下:

# foo.com:/etc/apache2/sites-availables/foo.com.conf:

<VirtualHost *:80>
    ServerName foo.com
    ServerAlias www.foo.com
    DocumentRoot /var/www/apps/foo.com/current/public
</VirtualHost>

<VirtualHost *:443>
    ServerName foo.com
    ServerAlias www.foo.com
    DocumentRoot /var/www/apps/foo.com/current/public

    SSLEngine On
    SSLCertificateKeyFile /etc/apache2/ssl/foo.com.key
    SSLCertificateFile /etc/apache2/ssl/WWW.FOO.COM.crt
    SSLCertificateChainFile /etc/apache2/ssl/Apache_Plesk_Install.txt
</VirtualHost>

(根据需要将“foo.com”替换为“bar.com”。)

我正在合并这两个代码库,以方便 foo.com 和 bar.com 的用户使用。最终它们将驻留在同一个服务器 (foo.com) 上,并且两个域名将指向同一个 IP。单个服务器将完全能够处理来自两个站点的流量 - 它们每天仅接收大约几十个独立用户,峰值负载为数百或数千。

以下是我建议的合并事项清单。我的问题是:我忘记了什么?

  1. 将私钥、证书和证书链文件从复制bar.com:/etc/apache2/ssl/*foo.com:/etc/apache2/ssl/bar.com/*
  2. 将 bar.com 网站配置从bar.com:/etc/apache2/sites-available/bar.com.conf复制到foo.com:/etc/apache2/sites-available/bar.com/conf并根据上一点编辑 SSL 配置
  3. (可能会将 foo.com SSL 配置更改为更像新的 bar.com 配置)
  4. 在 foo.com 上重新启动 Apache
  5. 将 bar.com 名称列表更改为 foo.com 的别名

这会起作用吗?用户会获得正确的证书吗?还是会看到证书警告?

答案1

两个域名都指向同一个 IP

如果您想避免两个不同站点共享同一 IP:端口时出现证书警告,您将需要使用在一个证书中支持多个/备用名称的 SAN/UCC 证书。

看一下这个帖子:

使用 UCC/SAN 证书在单个 IP 上使用 Apache SSL VirtualHosts

如果无法订购 SAN/UCC 证书,则需要使用多个 IP 地址。

相关内容