ruby-on-rails - 如何为自定义子域禁用 SSL

标签 ruby-on-rails ssl heroku https subdomain

我的根域 (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/

相关文章:

ruby-on-rails - Rails 4 Net::SMTPAuthenticationError: 535 #5.7.0 身份验证失败

mysql - rake 数据库 :create generated "if you set the charset manually, make sure you have a matching collation" error

ruby-on-rails - 如何在 Ruby on Rails 中使用字符串访问实例关系?

ruby-on-rails - 我在哪里可以阅读有关 ruby​​ on rails 中的 REST 的信息?

apache - 无法加载 'C:/Apache/Perl/site/lib/auto/Apache2/ModSSL/ModSSL.dll'

linux - WGET - HTTPS 与 HTTP = HTTPS 更慢

python - 运行 pip install - 在 Windows 机器上。由于网络代理导致证书错误

ruby-on-rails - 在 Heroku 上处理传入电子邮件

ruby-on-rails - 使用按钮而不是链接有什么好处吗?

ruby-on-rails - 在 Heroku 应用程序的 AWS RDS 上使用 postgres DB 上的 Controller 时出现问题