当前位置: 首页 > 知识库问答 >
问题:

带有Puma、HTTP解析错误、格式错误的请求的SSL

颜奇希
2023-03-14

试图用HTTPS为远程服务器上的专用网络中提供服务的rails应用程序配置Puma。Puma文档让它看起来像是可能的,它们提供了以下命令:

puma -b 'ssl://127.0.0.1:9292?key=path_to_key&cert=path_to_cert'

(出于测试目的)采取的步骤:

生成私钥和自签名证书

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/puma_test.key -out /etc/zzz_puma_test.crt


rvmsudo rails s -p 443 -b 'ssl://127.0.0.1?key=/etc/puma_test.key&cert=/etc/zzz_puma_test.crt'
=> Booting Puma
=> Rails 4.2.8 application starting in development on http://ssl://127.0.0.1?key=/etc/puma_test.key&cert=/etc/zzz_puma_test.crt:443
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
Puma starting in single mode...
* Version 3.12.0 (ruby 2.3.3-p222), codename: Llamas in Pajamas
* Min threads: 0, max threads: 16
* Environment: development
* Listening on tcp://0.0.0.0:443

SSL收到的记录超过了允许的最大长度。错误代码:SSL_ERROR_RX_RECORD_TOO_LONG

奇怪的是,我在我的电脑上本地做了上面的确切步骤,对于一个在我的电脑上本地服务的应用程序,它都工作得很好。

  • 我创建了一个新应用程序
  • 运行上面的行以生成密钥和自签名证书
  • 运行上述行以启动服务器
  • 在终端中,当服务器启动时,它显示它正在正确侦听(换句话说:从未提到http):侦听SSL://127.0.0.1:443?key...cert...
  • 连接到https://localhost/blogs可以正常工作。

已经查看的资源:

  • 所以发布
  • GitHubGist
  • 未结期、已结期、

我已经尝试对上面的rails命令进行了一些小的修改:

    null

共有1个答案

慕容兴贤
2023-03-14

我用Ubuntu 16.04.5LTS服务器(HWE内核)构建了一个新的虚拟机,安装了RVM、Ruby 2.3.3和Rails 4.2.8,按照您的复制说明,然后...很管用。我使用0.0.0.0作为监听地址,并从主机访问guest的地址。

mwp@ubuntu:~/Code/blag$ export rvmsudo_secure_path=1
mwp@ubuntu:~/Code/blag$ rvmsudo rails s -p 443 -b 'ssl://0.0.0.0?key=/etc/puma_test.key&cert=/etc/zzz_puma_test.crt'
=> Booting Puma
=> Rails 4.2.8 application starting in development on http://ssl://0.0.0.0?key=/etc/puma_test.key&cert=/etc/zzz_puma_test.crt:443
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
Puma starting in single mode...
* Version 3.12.0 (ruby 2.3.3-p222), codename: Llamas in Pajamas
* Min threads: 0, max threads: 16
* Environment: development
* Listening on ssl://0.0.0.0:443?key=/etc/puma_test.key&cert=/etc/zzz_puma_test.crt
Use Ctrl-C to stop
mwp@macos:~$ curl -Ik https://192.168.10.137
HTTP/1.1 200 OK
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Content-Type: text/html; charset=utf-8
ETag: W/"b56dd5f9363ed0f7bd4d11c36d9471dd"
Cache-Control: max-age=0, private, must-revalidate
X-Request-Id: 555223a6-3f70-49cf-8b30-92d3047ff8a6
X-Runtime: 0.009792
Started HEAD "/" for 192.168.10.112 at 2019-02-28 15:39:19 -0600
Cannot render console from 192.168.10.112! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Processing by Rails::WelcomeController#index as */*
  Rendered /home/mwp/.rvm/gems/ruby-2.3.3/gems/railties-4.2.8/lib/rails/templates/rails/welcome/index.html.erb (0.6ms)
Completed 200 OK in 5ms (Views: 4.4ms | ActiveRecord: 0.0ms)

因此,这里显然缺少了其他一些东西:服务器上的一些配置、Gemfile中的一些Gem或Rails项目中的一些配置。

 类似资料:
  • 清除浏览器缓存并重新启动 恢复到GIT中当时正在工作的旧提交 重新启动终端 运行其他正常运行的rails应用程序

  • 问题内容: 我有一段这样的代码 当我输入的查询超过一个词,例如“狗”时,出现以下错误。 谁能指出我做错了什么?提前致谢。 问题答案: “狗”返回400错误的原因是因为您没有转义URL的字符串。 如果您这样做: 会的。 但是,我强烈建议您使用请求,而不要使用urllib / urllib2 / httplib。这要容易得多,它将为您处理所有这一切。 这是与python请求相同的代码:

  • 问题内容: 目前,我正在开发一项功能,该功能涉及解析从另一产品收到的XML。我决定对一些实际的客户数据进行一些测试,看起来其他产品正在允许来自用户的输入被认为是无效的。无论如何,我仍然必须尝试找出一种解析它的方法。我们正在使用,但输入出现错误,如下所示。 如你所知,说明中包含似乎是无效标签的内容。现在,此描述标签被称为是叶子标签,并且其中不应包含任何嵌套标签。无论如何,这仍然是一个问题,并且会在

  • ✔功能:功能文件夹上传成功 我正在开始发布过程(可能需要几分钟)... i函数:正在创建函数FollowerNotification. 其他一切工作都没有问题。只有当我试着用Firebase Firestore做东西的时候。

  • 我有一个现有的spring boot应用程序。我刚刚在、中添加了acturetor。 执行器工作有响应代码错误 来自日志:看起来spring无法解析某个参数。下面是日志。 019-05-15 14:38:24.747 DEBUG 8964---[nio-8090-exec-3]o.s.web.servlet.dispatcherServlet:GET“/acturet/health”,parame

  • 我正在与Visual Studio2015一起使用PayPal REST API。我在我的沙箱上收到了一个“格式错误的请求”,用paypal存储的ccard支付(向paypal api传递一个令牌)。调试ID:5B98F22095BA7 如何捕获提交到PayPal的请求,以便将其与预期的请求格式进行比较?或者,有人能给我指出一个工具,它会给出我的调试ID的详细信息吗? 谢谢! ?详细信息{payp