我正在运行一个新的网站上谷歌应用引擎与自定义域名,我想要求所有流量通过https通过。
我在http://rublonde.com/tmp创建了一个测试脚本
<?
header("Strict-Transport-Security: max-age=180; includeSubdomains");
print $_SERVER['HTTP_X_FORWARDED_PROTO'];(该站点的内容与域名并不匹配,我只是暂时将该域名用作自定义域,这样我就可以让HTTPS头文件正常工作。)
在Google App Engine中,HTTP_X_FORWARDED_PROTO将是http或https。在第一次加载这个页面时,我假设它会获得HSTS头,然后在随后的页面加载中,Chrome应该会自动通过https请求页面。
我是不是误解了HSTS的工作原理?我做错了什么吗?
发布于 2018-12-17 09:26:41
啊,我意识到HSTS报头在通过http连接发送时会被忽略(我认为是因为它们需要与https连接附带的有效证书相关联)。
https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security#HSTS_mechanism_overview
服务器通过在HTTPS连接上提供报头(忽略HTTP上的HSTS报头)实现HSTS策略。
https://stackoverflow.com/questions/53807115
复制相似问题