无法在 Safari 13 中跨 .test 子域共享 cookie

lan*_*aso 11 cookies safari cross-domain

我有https://example.test & https://m.example.test 的apache 自我证书

浏览https://m.example.test 时,使用 php 'session.cookie_domain' 将 cookie 设置为基本域 '.example.test'。这在 Chrome、Firefox 或 Safari 版本 12 之前有效。但是,它在 Safari 13(iOS 13 或 Catalina)中不再起作用。

更奇怪的是,cookie 仍然设置为 Safari 13 上的基本域,我的生产机器为https://example.COM & https://m.example.COM

对于 COM 和 TEST 服务器,我有相同的 apache 服务器配置。在将我的 iOS 设备更新到 iOS 13 或 Catalina 之后的 MacOS 后,它只是停止在我的开发“.test”服务器上工作。Chrome、Firefox 仍然有效。即使连接到我的开发机器(通过代理)的旧 iOS 设备仍然将 cookie 存储到基本域“.example.test”。所以看起来它是特定于 Safari 13 的,并且只在“.test”域中。

我使用 Apple 的最新建议(最多 825 天等)为我的 .TEST 服务器创建了新证书,但没有任何区别。自签名证书似乎发生了一些变化。或者也许存在针对“.test”(非公共)域的新规则?它是特定于 Safari、“.test”非公共域或证书的内容。或者我什至没有想到的其他事情。

知道如何配置 Apache/Macosx/certificates 以便我仍然可以在开发 .test 域中使用 Safari 13 跨子域共享 cookie?谢谢。

tbu*_*ehl 1

我对.testtld 的通配符子域和 cookie 也有同样的问题。它在 Chrome 中有效,但 Safari 13 没有设置 cookie。

我的解决方法是改用.local。这在 Safari 中也有效。

(像@gueorgui建议的那样单独指定每个子域并不能按预期工作,因为浏览器将为每个子域设置单独的cookie)