法拉第在init"中发出错误" SSL_write :: shutdown在调用Application API之一时随机

时间:2017-12-15 10:54:01

标签: ruby-on-rails ruby file-upload openssl faraday

我有两个主要应用程序(比如说App1,App2)坐在不同的物理盒子里。每个都在各自的盒子上有自己的微服务。现在我正在从App1拨打一个API,该API属于另一个盒子上App2的微服务之一。它是一个POST API,它将File和其他一些数据作为输入。我随机面对以下问题

  

在init

中的SSL_write :: shutdown

虽然如果这两个应用程序存在于同一个框中,则此问题永远不会出现。

OpenSSL版本

  

OpenSSL 1.0.2k-fips

我正在制作的电话是通过

  

法拉第宝石(0.9.1)

App1建立在

之上
  

Ruby 1.8.7 with Rails 2.3.2

This site告诉我这是OpenSSL的一个错误,它是在1.0.2b版本中引入的,并在1.0.2n上解决。虽然我在 6 ,但我没有可用于更新的1.0.2n版本。可用的最高版本是1.0.2k。

我有什么方法可以升级它,或者有其他方法可以解决这个问题。

1 个答案:

答案 0 :(得分:0)

我看到了失败的模式。当以下所有情况都成立时,失败就发生了:

  • 客户端是ruby 1.8.7
  • 打开SSL版本1.0.2k
  • 客户端和服务器位于两个不同的框中

如果上述任何一种情况都不属实,则问题没有出现。

理想的解决办法是OpenSSL升级(不适用于我所使用的操作系统 - RHEL7)或升级Ruby版本(不可行)或将两个应用程序放在同一个盒子上(再次不可行) )。所以剩下的修复就是改变客户端。

我用于解决此问题的方法是使用 Curl ,而不是通过法拉第宝石进行调用。