Chrome强制ssl在非ssl的heroku web应用程序

问题描述:

我有一个在Heroku上运行的应用程序和一个指向它的dns cname条目。看起来是这样的:Chrome强制ssl在非ssl的heroku web应用程序

one.nest.mysite.com --> one-nest-domain.herokuapp.com 

我们也有使用SSL,与*.mysite.com证书另一个站点。

在Chrome中52现在,当我去http://one.nest.mysite.com(不是HTTPS),我得到重定向到https://和Chrome警告“您的连接不是私人的,攻击者可能会......”等

我我认为我明白这个警告(*.mysite.com不包括one.nest.mysite.com,但为什么https被强制?这是否缓存了一些重定向?我尝试完全清除我的浏览器数据,但它仍然发生。罚款...

最后当我去http://one-nest-domain.herokuapp.com(没有https),该应用程序加载罚款没有重定向。

因此,看起来我们的主站点nest.mysite.com的配置在绑定证书时包含了子域。所以在访问https://nest.mysite.com之后,证书就存储在客户端并固定到子域。随后访问http://one.nest.mysite.com将使用该证书,这将强制ssl并导致错误。

从我们的主服务器配置中排除子域名锁定似乎有固定的东西。请注意,要传播修补程序,用户必须访问https://nest.mysite.com以刷新SSL设置,然后http://one.nest.mysite.com按预期工作。

希望这对其他人有用。警告:我不是ssl的专家,所以用一粒盐回答我的答案。