Apple 设备上发生错误定向请求

问题描述 投票:0回答:2

我一直面临的一个恼人且持续存在的问题是“错误定向请求错误客户端需要为此请求建立一个新连接,因为请求的主机名与用于此连接的服务器名称指示(SNI)不匹配”当从前端向后端执行 AJAX 请求时。 CORS 起源已得到解决。奇怪的是,这个问题仅发生在运行 Safari 和 Chrome 的 Apple 设备(iPhone/Mac Book)上。其他 Android 和 Windows 设备可以无缝运行。我尝试为我的域购买额外的专用 SSL 证书,其中包括来自 GoDaddy 的两个子域(前端和后端)。

还有其他提示/解决方案吗?

ios macos http http-status-code-421
2个回答
0
投票

为两个子域颁发单独的 SSL 证书就可以了。确保两个子域没有分组在同一证书下。


0
投票

当用户单击将他们从我们的主域带到子域的链接时,我们遇到了类似的问题。就像从

website.com
webshop.website.com

两个站点位于同一服务器上,使用通配符 SSL 证书。

无论如何,就我们的情况而言,我对这个问题的理解是 SSL 握手过程使用主机名/域标识网站,并且由于服务器使用

Connection: keep-alive
的 HTTP 标头进行响应,客户端(浏览器)将保持此连接打开并重用它以供将来的请求。

当这些未来的请求转到不同的主机名时(例如从 website.com 转到 webshop.website.com,甚至是 www.website.com),SNI 之间突然不匹配(这是在开始时确定的) SSL 握手)和从最近请求返回的 HTTP 标头。

在我们的例子中,我们只需在我们的网络主机仪表板中重新导入 SSL 证书,并确保勾选

Is this a wildcard certificate?
框,我们忘记了 :p

GoDaddy 在设置 SSL 证书时有这样的选项吗?

另一个解决方案可能是将 HTTP 标头更改为

Connection: close
(这可能会使网站变慢一些)

我们的想法是在

.htaccess
文件中使用以下代码来执行此操作:

<IfModule mod_headers.c>
Header set Connection "close"
</IfModule>

但我们从来不需要尝试这个,所以我们不知道它是否有效。

© www.soinside.com 2019 - 2024. All rights reserved.