【发布时间】:2018-06-12 06:14:44
【问题描述】:
我有一个域在 example.com 上运行,https://example.com 在 Heroku 上运行。我的名称服务器上有一个从 www 到 https://example.com 的 URL 重定向。我在config/environment/production.rb 中设置了config.force_ssl = true。域 URL 重定向仅适用于 http,不适用于 https。我第一次输入 www.example.com 时,它可以在 Chrome 中运行。但是,我第二次使用 www.example.com 时它失败了。它给出了一个带有 307 内部重定向的“ERR_CONNECTION_REFUSED”。
Status Code: 307 Internal Redirect
Location: https://www.example.com/
Non-Authoritative-Reason: HSTS
尽管域服务总是通过curl 提供Location: https://example.com。 Chrome 是从哪里获得https://www* 的?我在 chrome://net-internals/#hsts 看到了 https://superuser.com/a/881431/130929 关于从 Chrome 中删除 HSTS 条目的信息。如果我对 example.com 和 www.example.com 都这样做,那么它只会在第一次再次对 www.example.com 起作用。 example.com 和 https://example.com 始终有效。更糟糕的是,在 Firefox 中,加载页面后,简单地使用 example.com 会失败,因为 Firefox 会自动添加一个https://www。如何在根域上使用 HTTPS 并将 www 重定向到根域?我不在乎处理https://www.example.com,因为没有人会输入它。他们只会错误地输入 www.example.com。
【问题讨论】:
-
你有 SSL 证书吗?
-
是的,看我说
I have a domain running on ... https://example.com的部分。它在第一句话中。另请参阅我在底部附近说https://example.com always works的部分。
标签: ruby-on-rails google-chrome heroku https hsts