Ruby on Rails-Paypal和TLS 1.2

时间:2018-06-27 16:41:40

标签: ruby-on-rails ruby ruby-on-rails-4 paypal tls1.2

我有一个配备

的项目
ruby 2.1.0 
Rails 4.0.0
OpenSSL 1.0.1e
Linux Ubuntu-1310-saucy-64-minimal 3.11.0-15-generic #23-Ubuntu SMP Mon Dec 9 18:17:04 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
Apache/2.4.6 (Ubuntu)

我正在使用Paypal Express结帐按钮,并收到Paypal的警告,提示我未按要求使用TLS1.2,但使用的是旧版本。

因此,在发现一些问题之后,我添加了一个初始化程序,以强制ruby像这样使用TLS 1.2

OpenSSL::SSL::SSLContext::DEFAULT_PARAMS[:ssl_version] = :TLSv1_2

现在,如果我拨打电话,则根据paypal来测试项目是否符合要求

$ ruby​​ -r'net / http'-e'puts Net :: HTTP.get(URI(“ https://tlstest.paypal.com/”))'

直接从我的终端服务器上,我从Paypal收到错误,我的TLS版本未更新。 如果我从Rails控制台运行相同的内容,Paypal表示还可以。

require 'net/http'
 => false
2.1.0 :003 > puts Net::HTTP.get(URI("https://tlstest.paypal.com/"))
PayPal_Connection_OK

更奇怪的是,如果我在rest客户端gem上运行命令,则在rails控制台中出现证书错误:

Loading production environment (Rails 4.0.0)
2.1.0 :001 >  puts JSON.parse(RestClient.get('https://tlstest.paypal.com/').to_str)
/home/amministratore/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/http.rb:920: warning: exception in verify_callback is ignored
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

所以我的问题是:哪个是正确的版本?我的意思是我应该做更多事情还是应该没问题?

先谢谢了。

0 个答案:

没有答案