CakePHP + AWSのロードバランサーでCookieがセキュアにならなかった件。

CookieComponentの設定では、secure = true;となっています。
ソースコードを追っかけたところ、CakeSessionComponentで、

if (!isset($sessionConfig['ini']['session.cookie_secure']) && env('HTTPS')) {
 $sessionConfig['ini']['session.cookie_secure'] = 1;
 }

となっている所があり設定にかかわらずenv(‘HTTPS’)が空の場合にはセッションCookieがセキュアにならない設定に。

今回はサイト全てhttpsなのでELB以下のAhache(htaccess)でsetEnvしてセットして対応

setEnv HTTPS 'on'

(本当は、X-Forwardedヘッダー参照して ‘on’ or ”(空)にする対応が必要ですが取り急ぎまで)