2016-07-07 99 views
0

我正在开发使用ruby on rails构建的API的salesforce应用程序。最初这个应用程序工作正常,直到我在使用Jenkins部署应用程序时遇到错误。我检查了日志,并提到“需要更强的安全性,要访问此网站,更新您的Web浏览器或升级操作系统以支持TLS 1.1或TLS 1.2。Salesforce禁用TLS 1.0”。Salesforce禁用TLS 1.0

我可以在我的ROR应用程序中更改哪些内容来解决此错误。我已经尝试将openssl gem添加到我的gemfile中,但问题仍然存在。这里是错误日志:

<table width="100%" height="100%" border="0"> 
<tr><td width="100%" height="100%"><div class="content"><h1>Stronger security is required</h1><div class="simple"><p>To access this website, update your web browser or upgrade your operating system to support TLS 1.1 or TLS 1.2.</p><p>For more information, see <a href="https://help.salesforce.com/HTViewSolution?id=000221207&amp;language=en_US" target="_blank">Salesforce disabling TLS 1.0</a>. 
</p></div></div></td></tr> 
</table 
+0

取决于您如何托管您的应用。你的ruby应用程序本身不太可能做到https终止(而不是像前面的nginx那样) –

+0

应用程序部署在heroku上。 –

+0

然后tls版本不受你控制(据我所知)。您确定这是触发此错误的应用程序请求(而不是,例如,Jenkins向salesforce API发出的请求)?或者,当您向salesforce API发出请求时会发生这种情况吗? –

回答

0

你试过哪个版本的ruby和openssl?据Salesforce documentation

红宝石

兼容最新版本链接到的OpenSSL 1.0.1或更高时。

红宝石2.0.0

TLS 1.2默认情况下使用OpenSSL 1.0.1 或更高时启动。使用:TLSv1_2(首选)或:TLSv1_1符号和 SSLContext的ssl_version有助于确保禁用TLS 1.0或更早版本的 。

红宝石1.9.3和下面

的:TLSv1_2符号不1.9.3和下面存在的,但它是 可以修补红宝石以添加符号和编译红宝石 OpenSSL的1.0。 1或更高。

+0

我已经添加了openssl gem 0.2.0。 Ruby版本是2.2.2。 –

+0

我认为你需要检查这个版本是否允许使用TLS 1.1或1.2,可能是问题的原因。 –

1

请看看这是否适合你。

  1. 查找openssl版本。您可以在命令行中使用以下命令“openssl 版本”。确保版本是1.0.1或更高版本。

    CTX = OpenSSL的:: SSL :: SSLContext.new
    CTX:

  2. TLS 1.1/TLS 1.2支持 OpenSSL的1.0.1 (https://github.com/ruby/ruby/commit/060184c347822b11dff3db6bef915c04a564c4e4
  3. 您的SSLContext设置SSL_VERSION开始.ssl_version =:TLSv1_2

相关问题