如何将所有 https 请求重定向到 https
Posted
技术标签:
【中文标题】如何将所有 https 请求重定向到 https【英文标题】:How to redirect all https request to https 【发布时间】:2018-09-15 08:42:41 【问题描述】:我现在对所有这些重定向感到有些困惑。
我有一个主域domainA.com
及其所有子域都由通配符证书保护。但是我们有多个外国域名,例如domainA.ch
或domainA.co.uk
。
这些其他域通过301
重定向到主域,当用户在其地址栏中键入以下内容之一时,它可以正常工作:
domainA.ch, www.domainA.ch or http://domainA.ch
但如果他完全输入https://domainA.ch
,用户会收到ERR_CERT_AUTHORITY_INVALID
消息。
一种解决方案是多域证书而不是单域证书,但这在财务上会有很大的不同。
另一种解决方案是让所有其他域成为一个虚拟主机,由letsencrypt保护并通过.htaccess
重定向到主域。
两种解决方案对我来说都不是“很好”,有没有办法在浏览器握手之前重定向?
非常感谢
domainA.com.conf:前缀 = /var/www/vhosts/system/$pool 用户 = __ 组 = __ 听 = php-fpm.sock 听。所有者=根 听.group = __ 听模式 = 0660 chdir = / 下午 = 按需 pm.max_children = 5 pm.max_spare_servers = 1 pm.min_spare_servers = 1 pm.process_idle_timeout = 10s pm.start_servers = 1
【问题讨论】:
在您的 apache 配置中,您有不同的 domainA.ch 文件吗?例如 domainA.ch.conf 和 domainA.ch-ssl.conf? 不只是来自主域,所以 domainA.com.conf 您可以编辑您的问题并粘贴您的 domainA.com.conf 吗?删除敏感信息 完成了,我觉得它不会有帮助吗?! :) 您在使用网络面板吗?或者这是您在 /etc/apache2/sites-enabled/domainA.com.conf 中找到的配置?抱歉问,但从未见过这样的 apache 配置 【参考方案1】:除非您对每个域都有不同的 IP 地址,否则每个域都可以拥有自己的证书。否则,您需要该单个 IP 地址的 SAN 证书。
【讨论】:
他需要 SAN 证书,但不需要 IP 地址。相反,每个 TLD 应该有一个 SAN。 澄清一下 - 单个 IP 地址只能提供 1 个证书。因此,如果您在一台机器上的 3 个不同 IP 地址上有 3 个域,那么您可以提供 3 个不同的证书。 使用 SNI,您可以在同一个 IP 上拥有多个证书。 (en.m.wikipedia.org/wiki/Server_Name_Indication)【参考方案2】:您不能拥有匹配不同***域的通配符证书。
当客户端浏览器连接到https://domain.ch 时,它需要查看在主题中包含该域的证书或主题备用名称 (SAN)。
因此,如果没有正确的证书,您的 https 流量就没有简单的重定向配置。 如果您有很多 TLD 域只想重定向到您的全球站点,您应该看看其他选项。让我们加密证书可能是要走的路。
【讨论】:
以上是关于如何将所有 https 请求重定向到 https的主要内容,如果未能解决你的问题,请参考以下文章
如何将所有请求重定向到 https)://www.domain name.tld/
将所有 HTTP 和 HTTPS 请求重定向到单个 HTTPS URL