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