ruby - 如何使用 SSL version = TLS 编写 POST 请求,我得到 SSL_connect SYSCALL returned=5 errno=0

标签 ruby ssl curl

我想用 Ruby 重写这个 curl 脚本

它使用 POST 通过 SSL 将一些数据发送到服务器

  curl -k https://<SERVER_ADDR>:443/ -i \
  -H "Accept: application/json" \
  -H "Content-Type:application/json" \
  -X POST -d @${1} https://<SERVER_ADDR>:443/service/

此 Curl 脚本有效,但以下 ruby​​ 脚本无效。

我使用 rest-client 库 https://github.com/rest-client/rest-client

我收到错误 #<OpenSSL::SSL::SSLError: SSL_connect SYSCALL returned=5 errno=0 state=SSLv3 read server hello A>

header = {
  "Accept" => " application/json",
  "Content-Type" => "application/json"
}

  resp = RestClient.post(server_url, content, header)

如何在 Ruby 版本中重写 curl?

最佳答案

RestClient 默认为 SSLv3,出于安全原因您不应使用它。要更改为更现代的东西:

RestClient::Resource.new('https://<SERVER_ADDRESS>:443/service', :ssl_version => 'TLSv1').post(:json_key => "json_value")

关于ruby - 如何使用 SSL version = TLS 编写 POST 请求,我得到 SSL_connect SYSCALL returned=5 errno=0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26600339/

相关文章:

ruby-on-rails - 在 Ubuntu 10.04 上使用 graphicsmagick 安装 rmagick 2.13.1

Python3 exchangelib 连接错误 : _ssl. c :749?

android - 使用 CURL 从网页获得大量响应后,缓冲区被截断

通过中间服务器 curl

PhP curl simple_dom_document 请求从 snowbird.com 获取雪数据

ruby-on-rails - 数组到 XML -- Rails

ruby - 有 ruby 单行 "return if x"吗?

ruby-on-rails - 无方法错误 : undefined method `current_sign_in_at' for #User:0x000055ce01dcf0a8 by using Devise_token_auth rails gem is not working

ruby-on-rails - 在设计 SSL Controller 之后返回到 HTTP

git - 通过代理服务器通过 HTTPS 使用 git-svn 时出现未知协议(protocol)错误