我的根域 (example.com) 有一个非通配符 SSL 证书,我正在使用 heroku ssl 端点插件。我正在使用路由约束,因此 subdomain.example.com 匹配各种 Controller 操作,并且我将带有 CNAME 记录的子域重新路由到根域。这在开发中一切正常,如果我禁用 https,它在 Tor 浏览器中也能正常工作,但我无法让它在任何普通浏览器中工作。
我已经尝试使用 gem SSL-enforcer 强制执行 SSL,但在具有子域的主机上除外:
config.middleware.use Rack::SslEnforcer, :except_hosts => 'subdomain.mydomain.com', :strict => true
我可以为我的 Rails 应用程序的子域禁用 https 协议(protocol)吗?我觉得这可能是不可能的,因为我读过 SSL 协商是在服务器知道 URL 之前进行的。
最佳答案
我会推荐 SSL-enforcer.....
您是否正在使用 config.force_ssl 并生成严格的传输安全 header ?如果它适用于 Tor 但不适用于普通浏览器,我怀疑这可能是问题所在。检查标题;如果 HSTS 存在,那么这可能就是原因。应该直接更改它(将 max-age 属性更改为 0)
如果不是,请再次检查 Heroku 文档并确保您的设置和 DNS/CNAME 正确.... https://devcenter.heroku.com/articles/ssl-endpoint#subdomain
希望这对您有所帮助。
关于ruby-on-rails - 如何为自定义子域禁用 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22921768/