2015-01-13 2 views
3

Мы вынуждены использовать TLS вместо SSL при отправке запроса на сервер, но мы не знаем, как убедиться, что запрос отправляется с использованием TLS, и если это не так, мы не уверены как заставить Rails сделать это.Как я могу заставить Rails использовать только TLS через SSL?

Вот как мы посылаем запрос:

uri = URI.parse("https://someurl.com") 
http = Net::HTTP.new(uri.host, uri.port) 
http.use_ssl = true 
http.verify_mode = OpenSSL::SSL::VERIFY_NONE 

request = Net::HTTP::Post.new(uri.path) 
request.body = body 
http.request(request) 

ответ

1

пытаются добавить

http.ssl_options = OpenSSL::SSL::OP_NO_SSLv2 + OpenSSL::SSL::OP_NO_SSLv3 + OpenSSL::SSL::OP_NO_COMPRESSION 
+0

Вы можете добавить какое-то объяснение, почему это работает? –

+0

'# ssl_options' может быть настроен на битовую маску констант, которые являются только оболочками вокруг эквивалента, которые определены в базовом' include/openssl/ssl.h'. Первые два отключают SSLv2 и SSLv3 соответственно, а последний параметр отключает сжатие, предположительно, для уменьшения атаки CRIME и других понижений (SSLv3 _requires_ compression). – uxp

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