我有一个配置为虚拟主机(基于名称)的 apache 服务器,假设其 ip 为 186.54.251.57,如果我输入该 ip 地址,则会显示 apache 主页...
如果我使用 http 或 https 输入 example1.com,它可以正常工作,因为它具有 R3 证书(letsencrypt)
example2.com 也可以正常工作(只要域名设置为 apache2)
问题是,当我将域名添加到我的 DNS 服务器时,A 记录指向地址 186.54.251.57,但域名 example3.com 尚未在 apache 中配置,如果我进入浏览器并输入 http://example3. com,将带我进入 apache 主页,但问题出现在我通过https://example3.com,由于域名尚未具有 ssl 证书,因为它未在 apache 中配置,因此它会加载 example2.com 的内容,因为它关联了其他页面的 ssl 证书,从而显示其内容...
我该如何防止这种情况发生?如果您在 DNS 中有一个指向 Apache 服务器 IP 地址的 A 记录,但是如果您没有 SSL 证书,则不会加载另一个外部页面,该怎么办?
答案1
我将留下解决方案,因为它很简单,但对于那些不知道的人来说可能会不舒服......
事实证明,apache 是按照字母顺序读取配置文件的,这就是为什么 apache 主页以 000-default 开头,但是默认 ssl 页面开头没有“000”,只有“default-ssl”,因此当创建按字母顺序排列的以字母“a、b 或 c”开头的域名时,它将成为默认 ssl 网站……
所以基本上我所做的就是将“default-ssl”配置文件重命名为“000-default-ssl”,问题就解决了。