【问题标题】:How do you run Rails with HTTPs locally for testing?如何在本地运行带有 HTTPs 的 Rails 进行测试?
【发布时间】:2012-01-26 09:52:12
【问题描述】:

我们的开发环境使用 HTTP,生产环境使用 HTTPS,这导致我们无法在本地重现的问题与 HTTPS 相关。

我如何在本地运行带有 SSL 的 Rails 以进行测试?有 Webrick 配置吗?

谢谢

【问题讨论】:

标签: ruby-on-rails ruby-on-rails-3 webrick


【解决方案1】:

你应该使用来做到这一点:

$ sudo apt-get install thin

并在 config/application.rb 中添加这一行

config.force_ssl = true

然后使用命令行在 Thin 上运行应用程序:

$ thin start --ssl

【讨论】:

    【解决方案2】:

    我认为这里的问题是特定于 Rails 的“测试”环境,这可能意味着 rspec,如果是这样,jaikoo 的这个要点对我有用:

    https://gist.github.com/jaikoo/daf88024b8de1cf9339b

    关于“开发”环境,最终我使用了 Thin,我并不想这样做,但我看到的最好的文章是 Keyur Gohil 的这篇文章:

    https://blog.botreetechnologies.com/enable-ssl-in-developement-using-thin-2a4bd1af500d

    虽然我把它放在一个批处理文件中并添加了 -D -V 并确保它在不同的端口上运行:

    #!
    #  Sets up the use of SSL in development
    #
    # https://www.devmynd.com/blog/rails-local-development-https-using-self-signed-ssl-certificate/
    #
    bundle exec thin -D -V start -a localhost -p 3001 --ssl --ssl-key-file ~/development/apps/localhost_ssl_tsl_keys/localhost.key --ssl-cert-file ~/development/apps/localhost_ssl_tsl_keys/localhost.crt
    

    【讨论】:

      【解决方案3】:

      最终,您应该在没有 SSL 的情况下运行开发。除非您的 SSL 证书有问题,否则您不应该出现独立于不同环境的错误。

      Staging 是您测试 SSL 框架的地方。

      【讨论】:

      • 如果您正在测试的内容实际上依赖于 HTTPS 怎么办?例如,如果您在 http 或 https 上单击“登录”,我的网站会有不同的流程。因此,想要在本地以 HTTPS 运行您的应用程序实际上很有意义。
      • 绝对有充分的理由尝试在本地运行 SSL。 OP 用例就是一个很好的例子。
      猜你喜欢
      • 2011-03-11
      • 2021-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-25
      相关资源
      最近更新 更多