使 Apache 不监听某些域的端口 443
Make Apache NOT listen on port 443 for some domains
我有一个 Apache 服务器设置为监听几个域的端口 80 和其中两个域的 443(至少这是我想要的)。
所以我的 Virtualhost *:443 带有 "my-ssl-domain.com" 和 "my-other-ssl-domain.com" ServerName。这两个域都有一个虚拟主机 *:80,它使用 mod_rewrite 简单地重定向到 HTTPS 版本。我正在为它们使用 let's encrypt。
我还有多个 (>10) 个只能通过 HTTP 工作的域。
发生的情况是,如果我转到“https://www.my-non-ssl-domain.com”,浏览器会抱怨没有有效的证书。 Google 似乎也将该页面编入索引,我想避免它,因为它似乎是糟糕的 SEO。
我想要 301 重定向“https://www.my-non-ssl-domain.com”到“http://www.my-non-ssl-domain.com" 或者至少根本不回答,就好像使用 HTTPS 的域根本不存在一样。
我该如何解决这个问题?
如果没有正确的证书,就无法(在没有警告的情况下)响应 https://
请求,这就是协议的工作原理。
有多种选择,但其中 none 可能最适合您:
有两个 public IP 地址,一个用于同时具有 http
+https
的站点,另一个仅用于 http
。然后将 Apache 配置为仅在第一个端口上侦听端口 443。
让我们加密证书(几乎)没有成本,所以只需去获取所有域名的证书(即使您出于某种原因不想通过 https
提供内容,至少你将能够正确地将访问者重定向到 http
站点)
我不知道 SEO 的后果,但是如果你像这样配置默认值 <VirtualHost *:443>
(你需要放置它以便它是 Apache 加载的第一个 VirtualHost :443,它最好放在httpd.conf
的底部):
<VirtualHost *:443>
ServerName non.existing_host.noTld
</VirtualHost>
在那种情况下,客户端将不会收到证书不匹配警告(NET::ERR_CERT_COMMON_NAME_INVALID
),它们将由于 SSL 协议错误(ERR_SSL_PROTOCOL_ERROR
)而断开连接,这可能对 SEO 更好,也可能不好,我真的不知道。
我有一个 Apache 服务器设置为监听几个域的端口 80 和其中两个域的 443(至少这是我想要的)。 所以我的 Virtualhost *:443 带有 "my-ssl-domain.com" 和 "my-other-ssl-domain.com" ServerName。这两个域都有一个虚拟主机 *:80,它使用 mod_rewrite 简单地重定向到 HTTPS 版本。我正在为它们使用 let's encrypt。
我还有多个 (>10) 个只能通过 HTTP 工作的域。
发生的情况是,如果我转到“https://www.my-non-ssl-domain.com”,浏览器会抱怨没有有效的证书。 Google 似乎也将该页面编入索引,我想避免它,因为它似乎是糟糕的 SEO。
我想要 301 重定向“https://www.my-non-ssl-domain.com”到“http://www.my-non-ssl-domain.com" 或者至少根本不回答,就好像使用 HTTPS 的域根本不存在一样。
我该如何解决这个问题?
如果没有正确的证书,就无法(在没有警告的情况下)响应 https://
请求,这就是协议的工作原理。
有多种选择,但其中 none 可能最适合您:
有两个 public IP 地址,一个用于同时具有
http
+https
的站点,另一个仅用于http
。然后将 Apache 配置为仅在第一个端口上侦听端口 443。让我们加密证书(几乎)没有成本,所以只需去获取所有域名的证书(即使您出于某种原因不想通过
https
提供内容,至少你将能够正确地将访问者重定向到http
站点)我不知道 SEO 的后果,但是如果你像这样配置默认值
<VirtualHost *:443>
(你需要放置它以便它是 Apache 加载的第一个 VirtualHost :443,它最好放在httpd.conf
的底部):
<VirtualHost *:443> ServerName non.existing_host.noTld </VirtualHost>
在那种情况下,客户端将不会收到证书不匹配警告(NET::ERR_CERT_COMMON_NAME_INVALID
),它们将由于 SSL 协议错误(ERR_SSL_PROTOCOL_ERROR
)而断开连接,这可能对 SEO 更好,也可能不好,我真的不知道。