2018-11-15
简书上已经有一位前辈写了相关的文章,我也是借着这篇文章理解遇到的问题
项目背景:
- 前后端分离,前端以接口从后端获取数据;
- 服务器端在
nginx
配置中开启add_header Strict-transport-Security "max-age=315300; includeSubdomain"
以告知浏览器当前域名的所有请求都使用https -
注意:仅当以
https
访问时会返回上述头信息
为了触发强制使用 https
,nginx
上通过 rewrite
,将常用访问入口重定向到 https
。
在以往的访问中,网站域名和接口域名都已经存在 Chrome
的 HSTS
列表中,但是新网站的域名因为通过在域名后加语言代号来实现 SEO
的多语言友好性,从而绕开了 rewrite
规则第一次访问时触发 HSTS
。而接口地址不变,且使用了 http
导致第一个接口调用得到了浏览器的虚假返回,后续调用正常。
网友评论