【发布时间】:2012-01-26 09:52:12
【问题描述】:
我们的开发环境使用 HTTP,生产环境使用 HTTPS,这导致我们无法在本地重现的问题与 HTTPS 相关。
我如何在本地运行带有 SSL 的 Rails 以进行测试?有 Webrick 配置吗?
谢谢
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 webrick
我们的开发环境使用 HTTP,生产环境使用 HTTPS,这导致我们无法在本地重现的问题与 HTTPS 相关。
我如何在本地运行带有 SSL 的 Rails 以进行测试?有 Webrick 配置吗?
谢谢
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 webrick
你应该使用瘦来做到这一点:
$ sudo apt-get install thin
并在 config/application.rb 中添加这一行
config.force_ssl = true
然后使用命令行在 Thin 上运行应用程序:
$ thin start --ssl
【讨论】:
我认为这里的问题是特定于 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
【讨论】:
最终,您应该在没有 SSL 的情况下运行开发。除非您的 SSL 证书有问题,否则您不应该出现独立于不同环境的错误。
Staging 是您测试 SSL 框架的地方。
【讨论】: