gpt4 book ai didi

ruby-on-rails - 如何在本地主机上为 Ruby on Rails 应用程序运行 SSL 证书?

转载 作者:数据小太阳 更新时间:2023-10-29 08:56:40 24 4
gpt4 key购买 nike

在开发中运行 Ruby 1.9.3、Rails 4.2.10 并使用瘦服务器。

我的应用在 Heroku 上使用 SSL。需要在我的本地 Mac 上运行 SSL。

我遵循了本教程。

https://www.botreetechnologies.com/blog/enable-ssl-for-rails-development-environment-two-minutes

这是我的程序文件:

web: bundle exec rails server thin start -p 3001 -e development --ssl --ssl-verify --ssl-key-file server.key --ssl-cert-file server.crt

这是我在跟踪中收到的错误

Invalid request: Invalid HTTP format, parsing fails.
/Users/jn/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/thin-1.6.4/lib/thin/request.rb:84:in `execute'
/Users/jn/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/thin-1.6.4/lib/thin/request.rb:84:in `parse'
/Users/jn/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/thin-1.6.4/lib/thin/connection.rb:39:in `receive_data'
/Users/jn/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/eventmachine-1.0.8/lib/eventmachine.rb:193:in `run_machine'
/Users/jn/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/eventmachine-1.0.8/lib/eventmachine.rb:193:in `run'
/Users/jn/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/thin-1.6.4/lib/thin/backends/base.rb:73:in `start'
/Users/jn/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/thin-1.6.4/lib/thin/server.rb:162:in `start'
/Users/jn/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/rack-1.6.4/lib/rack/handler/thin.rb:19:in `run'
/Users/jn/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/rack-1.6.4/lib/rack/server.rb:286:in `start'
/Users/jn/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/railties-4.2.4/lib/rails/commands/server.rb:80:in `start'
/Users/jn/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:80:in `block in server'
/Users/jn/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:75:in `tap'
/Users/jn/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:75:in `server'
/Users/jn/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
/Users/jn/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/railties-4.2.4/lib/rails/commands.rb:17:in `<top (required)>'
script/rails:6:in `require'
script/rails:6:in `<main>'

更新:

虽然我的 procfile 包含有关证书的信息。我像这样通过终端手动启动我的 THIN rails 服务器。

bundle exec rails server thin start -p 3001 -e development

所以不确定它是否正在使用 Procfile?

更新 2 ========

尝试使用 bundle exec thin start -p 3001 --ssl将 force_ssl 设置为 false

服务器启动

jn$ bundle exec thin start -p 3001 --ssl
/Users/jn/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/thin-1.6.4/lib/thin/backends/base.rb:103: warning: epoll is not supported on this platform
Using rack adapter
Thin web server (v1.6.4 codename Gob Bluth)
Maximum connections set to 1024
Listening on 0.0.0.0:3001, CTRL+C to stop

试着打https://localhost:3001服务器因错误停止

libc++abi.dylib: terminating with uncaught exception of type std::runtime_error: Encryption not available on this event-machine
Abort trap: 6

===== 更新 3:======

尝试过 Puma.io 失败了同样的问题(无法建立安全连接)。尝试过 Puma-dev 甚至无法识别 .dev URl再次尝试手动添加证书和 key (无法建立安全连接)。

应用在 http://localhost:3000 加载我们的应用登录表单.我一登录应用程序就使用 http 加载正确的用户帐户页面,然后大约 1 秒后页面被重定向到同一用户帐户页面,但 https 显示“无法建立安全连接”。不知道为什么浏览器强制我使用 https?应用程序中没有任何内容设置为我可以“查找/替换”的 https。

生成了一个新的 secret_key,认为它是 20 个字符而不是 30 个字符。粘贴到 secret_key.rb 中重新启动服务器。同样的 SSL 问题。

最佳答案

您可以使用 puma-dev为地方发展。它使 HTTPS 可以轻松使用。

Puma-dev automatically makes the apps available via SSL as well. When you first run puma-dev, it will have likely caused a dialog to appear to put in your password. What happened there was puma-dev generates its own CA certification that is stored in ~/Library/Application Support/io.puma.dev/cert.pem.

关于ruby-on-rails - 如何在本地主机上为 Ruby on Rails 应用程序运行 SSL 证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53492066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com