2016-07-07 100 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

相關問題