Shopify + Ubuntu的12.04LTS +法拉第问题= OK使用旧的OpenSSL的?(

2019-07-30 04:28发布

我使用Ubuntu桌面12.04LTS开发Shopify应用程序(使用shopify_app宝石),以及处理回调URL时,我就遇到了这个问题。

Faraday::Error::ConnectionFailed (Connection reset by peer - SSL_connect)

纵观shopify-APP-讨论小组在这里 ,在这里,似乎这个问题是与Ubuntu 12.04和OpenSSL的。 我试图安装最先进最新的OpenSSL,但一无所获。 一个替代方案,我发现是使用不同的,年长的OpenSSL,一个RVM提供。

$ rvm remove 1.9.3 (or whatever version of ruby you are using)
$ rvm pkg install openssl
$ rvm install 1.9.3 --with-openssl-dir=$rvm_path/usr

而现在的Shopify应用程序工作正常。 它可以连接到API。 (这个技巧可以帮助其他的Ubuntu 12.04的用户!)

所以,我的问题是:这是最好的解决办法? 我有点担心旧的OpenSSL版本。 它可能有一些安全问题。 它是安全的发展与此应用程序?

当我部署的应用程序(如Heroku的),在那里将是一个安全问题与旧的OpenSSL的?

提前致谢!

Answer 1:

其他建议并没有为我们工作。 具体来说,我们需要给力:SSLv3代替:TLSv1 。 (对于这两个股票的Ubuntu 12.04.01红宝石1.9.3,而我们从客运PPM使用的。)

此外,需要有一检查@ssl_options被定义。 我复制从实施的ActiveResource的一个。

我们在这个下跌config/initializers/shopify_ssl.rb一切是桃色的:

require 'active_resource/connection'

class ActiveResource::Connection
  def apply_ssl_options_with_ssl_version(http)
    apply_ssl_options_without_ssl_version(http)
    return http unless defined?(@ssl_options)
    http.ssl_version = @ssl_options[:ssl_version] if @ssl_options[:ssl_version]
    http
  end
  alias_method_chain :apply_ssl_options, :ssl_version
end

ShopifyAPI::Base.ssl_options = { :ssl_version => :SSLv3 }


Answer 2:

虽然OpenSSL的最新版本是尚未发现的安全漏洞的一个神圣的婚姻殿堂,我会说,你应该使用在该特定时刻为你工作的图书馆。 有没有安全漏洞没有软件,除非你可以影响服务器端升级到最新的与SSL版本恐怕你的选择是有限的兼容东西。



Answer 3:

当使用最新的OpenSSL库,你的客户是最有可能尝试使用TLS 1.2,在HTTPS使用的更近的SSL / TLS协议中的一个连接。 我们的负载平衡硬件与TLS 1.2一个已知的问题,虽然我们不知道它,直到我在独立这个错误绊倒自己。

我做了运营团队的其他成员认识到这一点,我希望我们会尽快解决这个。 在那之前,你可以使用

http.ssl_version = :TLSv1

迫使红宝石使用TLS 1.0来代替。

下面是如何将这个解决方法应用到的ActiveResource,那创业板为例shopify_api宝石内部使用:

require 'active_resource/connection'

class ActiveResource::Connection
  def apply_ssl_options_with_ssl_version(http)
    apply_ssl_options_without_ssl_version(http)

    http.ssl_version = @ssl_options[:ssl_version] if @ssl_options[:ssl_version]

    http
  end

  alias_method_chain :apply_ssl_options, :ssl_version
end

现在你可以使用

ShopifyAPI::Base.ssl_options = {:ssl_version => :TLSv1}

要解决此问题。



Answer 4:

你将永远使用OpenSSL的最后一个版本。



文章来源: Shopify + Ubuntu 12.04LTS + Faraday issue = OK to use older OpenSSL?