![如何在一个 Apache 实例中合并两个启用 SSL 的服务器?](https://linux22.com/image/507249/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%B8%80%E4%B8%AA%20Apache%20%E5%AE%9E%E4%BE%8B%E4%B8%AD%E5%90%88%E5%B9%B6%E4%B8%A4%E4%B8%AA%E5%90%AF%E7%94%A8%20SSL%20%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%9F.png)
我有两个不同的网站,foo.com
和bar.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。单个服务器将完全能够处理来自两个站点的流量 - 它们每天仅接收大约几十个独立用户,峰值负载为数百或数千。
以下是我建议的合并事项清单。我的问题是:我忘记了什么?
- 将私钥、证书和证书链文件从复制
bar.com:/etc/apache2/ssl/*
到foo.com:/etc/apache2/ssl/bar.com/*
- 将 bar.com 网站配置从
bar.com:/etc/apache2/sites-available/bar.com.conf
复制到foo.com:/etc/apache2/sites-available/bar.com/conf
并根据上一点编辑 SSL 配置 - (可能会将 foo.com SSL 配置更改为更像新的 bar.com 配置)
- 在 foo.com 上重新启动 Apache
- 将 bar.com 名称列表更改为 foo.com 的别名
这会起作用吗?用户会获得正确的证书吗?还是会看到证书警告?
答案1
两个域名都指向同一个 IP
如果您想避免两个不同站点共享同一 IP:端口时出现证书警告,您将需要使用在一个证书中支持多个/备用名称的 SAN/UCC 证书。
看一下这个帖子:
使用 UCC/SAN 证书在单个 IP 上使用 Apache SSL VirtualHosts
如果无法订购 SAN/UCC 证书,则需要使用多个 IP 地址。