如何在本地使用 HTTPs 运行 Rails 进行测试?

问题描述 投票:0回答:4

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

如何在本地使用 SSL 运行 Rails 以进行测试?有 Webrick 配置吗?

谢谢

ruby-on-rails ruby-on-rails-3 webrick
4个回答
18
投票

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

$ sudo apt-get install thin

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

config.force_ssl = true

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

$ thin start --ssl

1
投票

我认为这里的问题是特定于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

0
投票

对于当前的 Rails 版本(使用 Rack 3 和 Puma 作为默认 Web 服务器),我能找到的最简单的方法是:

  1. 创建自签名证书:

    openssl req -x509 -sha256 -nodes -newkey rsa:2048 -days 365 -keyout localhost.key -out localhost.crt

  2. 启动彪马:

    puma -b 'ssl://0.0.0.0:9292?key=localhost.key&cert=localhost.crt&verify_mode=none'


-21
投票

最终,您应该在没有 SSL 的情况下运行开发,就这样。除非您的 SSL 证书出现问题,否则您不应出现与不同环境无关的错误。

登台是您测试 SSL 框架的地方。

© www.soinside.com 2019 - 2024. All rights reserved.