
Я запускаю httpd:2.4.57 в docker. Я не понял, как установить или увидеть cookie, установленные mod_usertrack. Я проверил оба браузера, чтобы убедиться, что cookie разрешены.
Я проверил, что файл mod_usertrack.so существует в контейнере и на него правильно ссылаются.
$ ls -al | grep usertrack
-rwxr-xr-x 1 httpd httpd 43976 Oct 11 20:23 mod_usertrack.so
Вот директивы в httpd.conf:
LoadModule usertrack_module modules/mod_usertrack.so
CookieTracking on
CookieName session_id
CookieHTTPOnly on
CookieSecure off
CookieStyle RFC2965
CookieSameSite Strict
LogLevel warn
<IfModule log_config_module>
LogFormat "%{session_id}n %r %t" common
CustomLog /proc/self/fd/1 common
</IfModule>
А вот пример того, что выводится в мой журнал:
- GET /api/pictures HTTP/1.1 [23/Oct/2023:19:27:29 +0000]
На основании того, что я прочитал вhttps://httpd.apache.org/docs/2.4/mod/mod_usertrack.html, должен быть установлен файл cookie с именем session_id. Я не вижу файл cookie ни в журналах, ни в моих инструментах веб-разработки в Chrome или Firefox.
По просьбе @vidarlo, вот вывод того, curl -I ...
что мне пришлось добавить, --insecure
чтобы игнорировать мой самоподписанный сертификат:
$ curl -I --insecure https://localhost:8443
HTTP/1.1 200 OK
Date: Mon, 23 Oct 2023 19:50:58 GMT
Server: Apache
Set-Cookie2: session_id=87aa60b1.608678a7cc2f9; path=/; SameSite=Strict; Secure; HttpOnly
Last-Modified: Fri, 20 Oct 2023 14:46:20 GMT
ETag: "1e7f-60826ef88e48a"
Accept-Ranges: bytes
Content-Length: 7807
Content-Type: text/html
решение1
Интересно и неожиданно, что значение session_id меняется с каждым запросом.
Это не неожиданно. Это сгенерированопока нев запросе присутствует предыдущее значение.
Интересно, я вижу, что он устанавливает заголовок Set-Cookie2 вместо просто Set-Cookie. Это объясняет, почему он не отображается в моих инструментах веб-разработки.
Попробуйте добавить
CookieStyle Cookie
https://httpd.apache.org/docs/2.4/mod/mod_usertrack.html#cookiestyle