我的根域(example.com)有非通配符SSL证书,我正在使用heroku ssl端点添加。我正在使用路由约束,因此subdomain.example.com匹配各种控制器操作,我将带有CNAME记录的子域重新路由到根域。这一切都在开发中工作正常,如果我禁用https,它在Tor浏览器中工作正常,但我不能让它在任何普通的浏览器中工作。
我已尝试使用gem SSL-enforcer来强制执行SSL,但具有子域名的主机除外:
config.middleware.use Rack::SslEnforcer, :except_hosts => 'subdomain.mydomain.com', :strict => true
我可以为我的rails应用的子域禁用https协议吗?我觉得这可能是不可能的,因为我已经读过在服务器知道URL之前进行SSL协商。
答案 0 :(得分:0)
我会推荐SSL-enforcer .....
您使用的是config.force_ssl并生成严格的传输安全标头吗?如果它适用于Tor而不是普通的浏览器,我会怀疑这可能是问题。检查标题;如果HSTS存在,则可能是原因。应该直接改变它(将max-age属性更改为0)
如果没有,请再次检查Heroku文档,确保您的设置和DNS / CNAME正确无误.... https://devcenter.heroku.com/articles/ssl-endpoint#subdomain
希望这有帮助。