![如何处理指向不同域名的 CNAME 的 SSL 证书](https://linux22.com/image/704355/%E5%A6%82%E4%BD%95%E5%A4%84%E7%90%86%E6%8C%87%E5%90%91%E4%B8%8D%E5%90%8C%E5%9F%9F%E5%90%8D%E7%9A%84%20CNAME%20%E7%9A%84%20SSL%20%E8%AF%81%E4%B9%A6.png)
我的目标是:
*a.example1.com* should point to *example2.com/test*
数据:
- example2.com 的托管机器具有 SSL 证书(通配符)*.example2.com
- 我管理这两个域名。
我想到的解决方案:
创建子域名测试.example2.com指向“/var/www/site/test”下的内容。(子域名应该指向同一台机器)
创建如下 CNAME 记录: a.example1.com别名记录测试.example2.com
问题:
这会导致浏览器出现 SSL 证书问题。因此,我需要安装 SSL 证书a.example1.com在主机上example2.com更准确地说是在虚拟主机上测试.example2.com。但是,我不确定这是否可行?我找到了有关如何在 Apache 中拥有两个具有两个不同域的虚拟主机并因此具有不同的 SSL 证书的来源:因此,如果我执行以下操作:
创建虚拟主机测试.example2.com--> 指向 '/var/www/site/news' 并具有通配符证书 '*.example2.com'
创建另一个虚拟主机a.example1.com--->指向 /var/www/site/test 并具有通配符证书“a.example1.com”(在同一台机器上)
并创造了以下记录:
a.example1.comCNAME 至测试.example2.com
这能解决我的问题吗?
答案1
从您的 DNS 示例中,您将获得:
test.example2.com IN A 1.2.3.4
a.example1.com IN CNAME teste.example2.com
这基本上意味着您的客户端将把 a.example1.com 解析为 ip 1.2.3.4
。这还意味着您的 Web 服务器1.2.3.4
(如您所说,Apache)将接收两个 URL 的请求,并且 Apache 足够智能,可以将 GET/POST 等发送到正确的位置。
通过对虚拟主机条目进行隔离(甚至可以在同一个文件中),您可以处理许多不同的 URL 和域。我在一个 Apache 上特别有 200 多个 vhosts 文件(不是那么智能)(由于性能问题,正在迁移到 HAproxy)。所以是的,在同一台服务器上拥有两个完全不同的 URL 肯定可行。只需注意正确的 TLS 配置(例如使用正确的密钥和证书等)。
[]`