【问题标题】:Httpary: OpenSSL::SSL::SSLErrorHttpary:OpenSSL::SSL::SSLError
【发布时间】:2018-05-31 05:20:27
【问题描述】:

我一直在使用 httparty 与我的 rails 应用程序的 API 进行通信 我遇到的问题是当决定在不同的服务器上运行它时。 我们不断收到此错误:

SSL_connect returned=1 errno=0 state=unknown state: tlsv1 alert protocol version

它在我当前的环境中运行良好,没有错误,所以我不确定让它在我的其他服务器上运行时缺少什么

我的代码:

    require 'httparty'
    require 'pp'
    require 'openssl'

    def self.get_token

    include HTTParty

    base_uri = self.base_url
    base_uri = base_uri+'oauth/'+'token'
    response =  HTTParty.post(base_uri,verify:false,
                    :body =>{
                         :grant_type=>'password',
                         :client_id=>'3',
                         :client_secret=> 'eGSjPBZV70IsJwnyjNn7EYI6vci0bGrFbJkJNVof',
                         :password=>'Passw0rd!',
                         :username=>'myemail@gmail.com'
                },)
        token = response.parsed_response['access_token']


    return token
end `

【问题讨论】:

  • @Deepak ,虽然“忽略 SSL 方法”会删除警告消息,但它仅用于测试目的,因为它禁用证书验证,从而禁用各方的身份验证过程。

标签: ruby-on-rails ruby api ssl httparty


【解决方案1】:

您收到的是警报/警告,而不是错误。这是可能的,因为由于安全问题,不推荐您使用的 TLS 版本。

根据HTTParty documentation,可以使用以下代码更改TLS版本:

ssl_version :SSLv3

试试这个 v3 版本或 v2 版本,看看它是否会删除警告消息。

【讨论】:

  • 试过了,还是一样的警告
  • 确保您拥有最新版本的 OpenSSL。如果没有更新,请执行,看看是否解决。
  • 在检查之后,我的同事看起来实际上是在使用 vagrang box 精确而不是我使用的 xenial。在他的机器上安装了一个xenial box后能够使其运行,但我们仍然需要找出问题所在。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-17
  • 2012-08-30
  • 2011-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-02
相关资源
最近更新 更多