ruby - rails - ¿Cómo hago que HTTParty ignore SSL?
httparty post (3)
Estoy usando un servidor local para probar una aplicación y hacer solicitudes a ese servidor desde mi propia máquina.
El SSL del servidor de prueba es malo, y HTTParty arroja errores debido a eso. Según lo que leí, HTTParty debería ignorar SSL de forma predeterminada, pero cuando intento hacer esto:
HTTParty.get( "#{ @settings.api_server }#{ url }" ).parsed_response
Lanza este error:
OpenSSL::SSL::SSLError at /
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
¿Cómo hago para que ignore el SSL?
En la última HTTParty, puede usar la opción de verificación para deshabilitar la verificación SSL;
HTTParty.get( "#{ @settings.api_server }#{ url }", :verify => false ).parsed_response
Para hacer que HTTParty omita siempre la verificación del certificado SSL, y no tiene que especificar esto en cada llamada:
require ''httparty''
HTTParty::Basement.default_options.update(verify: false)
HTTParty.get("#{@settings.api_ssl_server}#{url1}")
HTTParty.get("#{@settings.api_ssl_server}#{url2}")
HTTParty.get("#{@settings.api_ssl_server}#{url3}")
# ...
También puede hacer esto con alcance a una clase cuando se incluye HTTParty como un módulo:
require ''httparty''
class Client
include HTTParty
default_options.update(verify: false)
end
Client.get("#{@settings.api_ssl_server}#{url1}")
Client.get("#{@settings.api_ssl_server}#{url2}")
Client.get("#{@settings.api_ssl_server}#{url3}")
O
require ''httparty''
module APIHelpers
class Client
include HTTParty
default_options.update(verify: false)
end
end
World(APIHelpers)
Client.get("#{@settings.api_ssl_server}#{url1}")
Client.get("#{@settings.api_ssl_server}#{url2}")
Client.get("#{@settings.api_ssl_server}#{url3}")
Si aún desea enviar sus certificados, use esta bandera:
verify_peer: false