使用php SDK为aws cloudfront https设置已签名的cookie

时间:2016-03-19 08:07:06

标签: php cookies https amazon-cloudfront aws-sdk

我正在通过cloudfront设置HLS流媒体服务,并实施多项内容保护安全措施。我已经成功地使它在http下工作,我可以流式传输视频并在我的网站上观看它有很多内容保护安全措施。有关我如何设法使其适用于http的更多详细信息,您可以在drupal.org上关于secure hls streaming的帖子中查阅。

但是现在我需要在公式中添加https,因为正在传输hls加密段的一些加密密钥,但是我遇到了问题。现在我正在努力将https添加到公式中。我已经在我的网站上添加了证书,并且我在cludfront中添加了一个不同的证书,因为我的证书不是通配符。

我的网站证书适用于subdomain.mydomain.com

我的云端证书适用于* .mydomain.com

我的Cloudfront发行版的cname为cdn.mydomain.com

当我创建cookie时,我在调用中将secure参数设置为true(域后第6个参数):

setcookie($name, $value, strtotime('+1 hour'), "/", ".mydomain.com", true, true);

但是当我尝试访问我网站上的一些测试数据时

if (readfile('https://cdn.mydomain.com/privacy_test.txt')==0)
    print "Error in cdn access";

我在网站上看不到该文件的内容,而是错误信息。

因此,似乎我需要做更多的事情来使cloudfront aws签名的cookie在https下工作。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

只需设置$secure的{​​{1}}参数,就无法创建签名的Cookie 。创建签名cookie的过程有点复杂。首先,查看https://github.com/WebReflection/document-register-element,特别是预设自定义政策部分。您需要熟悉Using Signed Cookies

利用creating a Policy, base64encoding that Policy and creating a Signature from the encoded policy中概述的代码示例,然后我在一些应用程序中使用以下代码来设置cookie:

setcookie()