Савон использует HTTPi library для сетевых запросов, но эта библиотека не поддерживает установку SSL шифры, как можно видеть из списка SSL options in the documentation.
от вопроса тегов я полагаю, что вы используете Curb в качестве сетевого адаптера для Savon/HTTPi и обочины, к счастью, поддерживает настройки различных параметров SSL, в том числе списка разрешенных шифров через общий set
method на скручивании клиента.
Так что, я думаю, ваш единственный вариант - установить HTTP-ключ обезьяны-патчей, чтобы установить соответствующий шифр при вызове настройки клиента Curb. Более чистым подходом было бы также обезвреживание палочки Savon для передачи опции «ssl_ciphers» в библиотеку HTTPi, но я оставлю это как упражнение для вас, если вы этого захотите :).
Самым простым местом для исправления является setup_ssl_auth
method в адаптере curb
HTTPi. Следующий патч переопределяет этот метод также явно отрицает DH
шифров в списке разрешенных SSL шифров:
module HTTPI
module Adapter
class Curb
alias_method :orig_setup_ssl_auth, :setup_ssl_auth
private
def setup_ssl_auth
orig_setup_ssl_auth
@client.set(:SSL_CIPHER_LIST, "DEFAULT:!DH")
end
end
end
end
патча вызывает оригинальный метод set_ssl_auth
первым, а затем отрицает DH
шифров на клиенте. Обратите внимание, что этот патч запрещает шифры DH
везде, где Savon/HTTPi используется в вашем приложении!
Дополнительные замечания по настройке шифров SSL можно найти in the libcurl docs.