Совместное использование файлов cookie между субдоменами .test в Safari 13 невозможно - PullRequest
7 голосов
/ 26 мая 2020

У меня есть собственный сертификат для apache для https://example.test и https://m.example.test

При просмотре https://m.example.test файлы cookie устанавливаются в базовый домен '.example.test' с использованием php 'session.cookie_domain'. Это ДЕЙСТВИТЕЛЬНО работает в Chrome, Firefox или Safari до версии 12. Однако он больше не работает в Safari 13 (iOS 13 или Catalina).

Что еще более странно, так это то, что cook ie все еще настроен на базовый домен в Safari 13 с моей производственной машиной для https://example.COM и https://m.example.COM

У меня одинаковая конфигурация сервера apache для серверов COM и TEST. Он просто перестал работать на моем сервере разработки ".test" после обновления моих устройств iOS до iOS 13 или в MacOS после Catalina. Chrome, Firefox еще работают. Даже старые устройства iOS, подключенные к моей машине разработки (через прокси), по-прежнему сохраняют Cook ie в базовом домене «.example.test». Итак, похоже, что это что-то особенное c для Safari 13 и только в доменах ".test".

Я создал новые сертификаты для своего .TEST-сервера, используя последние рекомендации Apple (максимум 825 дней и т. на), но это не имело никакого значения. Похоже, что что-то изменилось с самозаверяющими сертификатами. Или, возможно, существует новое правило для доменов ".test" (не publi c)? Это что-то либо указывает c на Safari, ".test" not-publi c -домены или сертификаты. Или еще о чем-то, о чем я даже не подумал.

Есть идеи, как настроить Apache / Macosx / сертификаты, чтобы я мог использовать ie повара для всех поддоменов, используя Safari 13 в доменах разработки .test? Спасибо.

Ответы [ 2 ]

1 голос
/ 22 июля 2020

То же самое и с поддоменами с подстановочными знаками и файлами cookie для .test tld. Он работает в Chrome, но Safari 13 не устанавливает кухню ie.

Мое обходное решение заключалось в использовании вместо этого поддомена .local, и все работает нормально.

(Указание каждый субдомен, предложенный как @ gueor gui, не работает должным образом, потому что браузер устанавливает отдельную кухню ie для каждого субдомена)

0 голосов
/ 01 июля 2020

Это не проблема с сертификатами, но похоже, что это разница в том, как Safari анализирует .test TLD.

Мы решили это, явно установив Cook ie для каждого необходимого нам поддомена . В нашем приложении Rails в среде разработки мы настроили хранилище сеансов следующим образом:

config.session_store(
  :active_record_store,
  key: 'our_app_session',
  domain: ['ourapp.test', 'api.ourapp.test', 'help.ourapp.test']
)

Если вы можете выяснить, как сделать то же самое в своем бэкэнде, вы сможете использовать один и тот же повар ie для разных .test субдоменов.

...