Подписанный Cookie-файл AWS Cloudfront не работает на альтернативном домене

я имею Access Denied для запроса GET в облачный фронт с подписанными файлами cookie, используя как обычную, так и пользовательскую политику.

  1. cdn.example.com альтернативный домен abc.cloudfront.netи CNAME установлен как на облачном фронте, так и на облачном.
  2. Я ожидаю после abc.example.com/authorize, cdn.example.com доступно.
  3. Я использую PHP с Laravel позади abc.example.com/authroizeи код выглядит следующим образом.

« `

$cloudFront = new Aws\CloudFront\CloudFrontClient([
'region'  => 'us-west-2',
'version' => '2014-11-06'
]);

$resourceKey = 'http://cdn.example.com';
$expires = time() + 300;

$signedCookieCannedPolicy = $cloudFront->getSignedCookie([
'url'         => $resourceKey,
'expires'     => $expires,
'private_key' => 'pk.pem',
'key_pair_id' => 'XXXXXXXXXXXXXX',
]);

$response = Response::success();
foreach ($signedCookieCannedPolicy as $name => $value) {
$response->withCookie(Cookie::make($name, $value, 360, null, 'example.com'));
}

return $response;

« `

  1. Печенье установлено для .example.com

введите описание изображения здесь

  1. Когда я иду в cdn.example.com, отображается следующее сообщение

введите описание изображения здесь

Заранее спасибо.

3

Решение

Оказывается, проблема была из-за зашифрованных файлов cookie. Вы можете проверить: https://laravel.com/api/5.2/Illuminate/Cookie/CookieJar.html#method_make И если вы используете Laravel 5.2, убедитесь, что вы добавили исключение, если вы использовали промежуточное ПО для шифрования.

0

Другие решения

Других решений пока нет …