diff --git a/rb/lib/selenium/webdriver/remote/http/default.rb b/rb/lib/selenium/webdriver/remote/http/default.rb index bdc54968e1664..68f66fea219ff 100644 --- a/rb/lib/selenium/webdriver/remote/http/default.rb +++ b/rb/lib/selenium/webdriver/remote/http/default.rb @@ -50,11 +50,8 @@ def close def http @http ||= begin http = new_http_client - if server_url.scheme == 'https' - http.use_ssl = true - http.verify_mode = OpenSSL::SSL::VERIFY_NONE - end - + set_ssl_options(new_http_client) if server_url.scheme == 'https' + # Defaulting open_timeout to nil to be consistent with Ruby 2.2 and earlier. http.open_timeout = open_timeout http.read_timeout = read_timeout if read_timeout @@ -139,6 +136,11 @@ def new_http_client end end + def set_ssl_options(client) + client.use_ssl = true + client.verify_mode = OpenSSL::SSL::VERIFY_NONE + end + def proxy @proxy ||= begin proxy = ENV['http_proxy'] || ENV['HTTP_PROXY'] diff --git a/rb/lib/selenium/webdriver/remote/http/persistent.rb b/rb/lib/selenium/webdriver/remote/http/persistent.rb index 10ea3fa2042bf..642210df72775 100644 --- a/rb/lib/selenium/webdriver/remote/http/persistent.rb +++ b/rb/lib/selenium/webdriver/remote/http/persistent.rb @@ -49,6 +49,14 @@ def new_http_client Net::HTTP::Persistent.new name: 'webdriver', proxy: proxy end + def set_ssl_options(client) + # Net::HTTP::Persistent manages its own SSL config for older version + if client.respond_to? :use_ssl= + client.use_ssl = true + client.verify_mode = OpenSSL::SSL::VERIFY_NONE + end + end + def response_for(request) http.request server_url, request end