我有两个不同的站点,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 的别名
那会奏效吗?用户会获得正确的证书还是会看到证书警告?
如果您想避免 2 个不同站点共享相同 IP:port 的证书警告,您将需要使用在一个证书中支持多个/备用名称的 SAN/UCC 证书。
看看这个线程:
使用 UCC/SAN 证书的单个 IP 上的 Apache SSL VirtualHosts
如果不能选择订购 SAN/UCC 证书,则需要使用多个 IP 地址。