2016-07-07 8 views
0

Я работаю над приложением Salesforce, которое использует API, построенный с использованием рубинов на рельсах. Первоначально это приложение работало нормально, пока я не столкнулся с ошибками при развертывании приложения с использованием Jenkins. Я проверил журналы, и в нем упоминается «Требуется более строгая безопасность. Чтобы получить доступ к этому веб-сайту, обновите свой веб-браузер или обновите свою операционную систему, чтобы поддерживать TLS 1.1 или TLS 1.2. Salesforce отключает TLS 1.0».Salesforce disabling TLS 1.0

Что я могу изменить в своем приложении ROR для устранения этой ошибки. Я уже пробовал добавить gsmfile в 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

Зависит от способа размещения приложения. Весьма маловероятно, что ваше рубиновое приложение делает сам https-завершение (в отличие от того, что перед ним что-то вроде nginx) –

+0

Приложение развернуто поверх герою. –

+0

Тогда версия tls не под вашим контролем (как я понимаю вещи). Вы уверены, что запросы к приложению запускают эту ошибку (а не, например, запросы, сделанные Jenkins в API Salesforce)? Или это происходит, когда вы делаете запросы к API Salesforce? –

ответ

0

Какую версию рубина и openssl вы попробовали? По Salesforce documentation:

Рубин

Совместимость с самой последней версией, когда связана с OpenSSL 1.0.1 или выше.

Руби 2.0.0

TLS 1.2 включена по умолчанию при использовании OpenSSL 1.0.1 или выше. Использование символов: TLSv1_2 (предпочтительный) или: TLSv1_1 с SSLSontext 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 или выше.
  2. TLS 1.1/TLS начинается поддержка 1,2 из OpenSSL 1.0.1 (https://github.com/ruby/ruby/commit/060184c347822b11dff3db6bef915c04a564c4e4)
  3. Установите ssl_version на вашем SSLContext:

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

Смежные вопросы