使用两个独立的子域和证书通过 SSL 共享 Apache 的文档根目录

使用两个独立的子域和证书通过 SSL 共享 Apache 的文档根目录

因此,我在 CentOS 7 上运行 Apache 服务器。我有两个指向同一个位置的域:https://www.example.comhttps://example.com。在我的 cfg 中,我有三个VirtualHosts;一个用于 http(用于两者),一个用于无子域,一个用于 www。我配置了单独的证书(每个证书一个),但当我部署时,Apache 只会提供它在 cfg 中找到的第一个证书。因此,如果我VirtualHost首先拥有 www 的证书,它会为两者提供 www 证书https://example.comhttps://www.example.com

我在同一个盒子上提供服务的其他域名都获得了正确的证书。

有人能解释一下这是怎么回事吗?这让我非常

# Abbreviated Main config file for example.com domain
<VirtualHost *:80>

  ServerAlias example.com
  ServerAlias www.example.com

  DocumentRoot "/var/www/example.com"

</VirtualHost>

<VirtualHost *:443>
  ServerAlias example.com  

  DocumentRoot "/var/www/example.com"

  SSLEngine on
  SSLCertificateFile "/etc/letsencrypt/live/example.com/fullchain.pem"
  SSLCertificateKeyFile "/etc/letsencrypt/live/example.com/privkey.pem"

</VirtualHost>

<VirtualHost *:443>
  ServerAlias www.example.com

  DocumentRoot "/var/www/example.com"

  SSLEngine on
  SSLCertificateFile "/etc/letsencrypt/live/www.example.com/fullchain.pem"
  SSLCertificateKeyFile "/etc/letsencrypt/live/www.example.com/privkey.pem"

</VirtualHost>

答案1

似乎没有ServerName定义任何虚拟主机。Apache 不会使用未定义该虚拟主机的虚拟主机,即使它们有ServerAlias

相关内容