Я установил session.cookie_secure на 1/верно в php.ini и работает следующий код позади апача или PHP-FPM + Nginx сервер -session.cookie_secure не устанавливает безопасный атрибут печенья
<!DOCTYPE html>
<?php
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
?>
<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
После перезапуска php-fpm/apache атрибут «secure» не появляется в заголовке Set-Cookie. Проверено с помощью Wget и Firefox (инструментов для разработчиков> переключаемых инструменты> сети)
echo session_get_cookie_params()[secure];
возвращает 1. Принуждения HTTPS параметра CGI для включения/выключения не делают разницы. Это изменение было проверено с помощью -
echo $_SERVER['HTTPS'];
Это дает тот же результат в RHEL/CentOS/EL 6 (РНР 5.3.3), RHEL/CentOS/EL 7 (РНР 5.4) и Gentoo (РНР 5.6.29)