2016-07-07 7 views
0

Ich arbeite an einer Salesforce-Anwendung, die eine API verwendet, die mit Ruby on Rails erstellt wurde. Anfangs funktionierte diese Anwendung gut, bis ich Fehler beim Deployment der Anwendung mit Jenkins bekam. Ich habe die Protokolle überprüft und erwähnt, dass "eine stärkere Sicherheit erforderlich ist. Um auf diese Website zuzugreifen, aktualisieren Sie Ihren Webbrowser oder aktualisieren Sie Ihr Betriebssystem, um TLS 1.1 oder TLS 1.2 zu unterstützen. Salesforce deaktiviert TLS 1.0".Salesforce inaktiviert TLS 1.0

Was kann ich in meiner ROR-Anwendung ändern, um diesen Fehler zu beheben? Ich habe bereits versucht, openssl gem zu meinem gemfile hinzuzufügen, aber das Problem besteht immer noch. Hier ist das Fehlerprotokoll:

<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

Hängt davon ab, wie Sie Ihre App hosten. Es ist ziemlich unwahrscheinlich, dass Ihre Ruby-Anwendung die https-Beendigung selbst ausführt (im Gegensatz zu etwas wie nginx vor) –

+0

Die Anwendung wird über Heroku bereitgestellt. –

+0

Dann tls Version ist nicht unter Ihrer Kontrolle (wie ich Dinge verstehe). Sind Sie sicher, dass es Anforderungen an Ihre App gibt, die diesen Fehler auslösen (und nicht beispielsweise Anforderungen, die von Jenkins an eine Salesforce-API gestellt werden)? Oder geschieht dies, wenn Sie Anfragen an eine Salesforce-API stellen? –

Antwort

0

Welche Version von Ruby und OpenSSL haben Sie versucht? Salesforce documentation nach:

Rubin

Kompatibel mit der neuesten Version als 1.0.1 oder höher OpenSSL verknüpft.

Rubin 2.0.0

TLS 1.2 ist standardmäßig aktiviert, wenn sie mit OpenSSL 1.0.1 oder höher verwendet. Mit den Symbolen: TLSv1_2 (bevorzugt) oder: TLSv1_1 mit SSLContext's ssl_version wird sichergestellt, dass TLS 1.0 oder früher deaktiviert ist.

Rubin 1.9.3 und unter

The: dieses Symbol hinzufügen und kompilieren Ruby OpenSSL 1.0 TLSv1_2 Symbol existiert nicht in 1.9.3 und unten, aber es ist möglich Ruby zu patchen. 1 oder höher.

+0

Ich habe openssl gem 0.2.0 hinzugefügt. Ruby-Version ist 2.2.2. –

+0

Ich denke, Sie müssen überprüfen, dass diese Version TLS 1.1 oder 1.2 verwenden kann, möglicherweise ist es die Ursache des Problems. –

1

Bitte sehen Sie, ob dies für Sie funktioniert.

  1. Finden Sie die OpenSSL-Version. Sie können den folgenden Befehl "openssl Version" in der Befehlszeile verwenden. Stellen Sie sicher, dass die Version 1.0.1 oder höher ist.
  2. TLS 1.1/TLS 1.2-Unterstützung beginnt bei OpenSSL 1.0.1 (https://github.com/ruby/ruby/commit/060184c347822b11dff3db6bef915c04a564c4e4)
  3. Set ssl_version auf dem SSL-Kontext:

    ctx = OpenSSL :: SSL :: SSLContext.new
    ctx .ssl_version =: TLSv1_2