Skip to content

Instantly share code, notes, and snippets.

@mdeiters
Forked from mislav/gist:938183
Created May 16, 2011 20:04
Show Gist options
  • Save mdeiters/975231 to your computer and use it in GitHub Desktop.
Save mdeiters/975231 to your computer and use it in GitHub Desktop.
Faraday SSL example
connection = Faraday::Connection.new('http://example.com') do |builder|
builder.request :url_encoded # for POST/PUT params
builder.adapter :net_http
end
# same as above, short form:
connection = Faraday.new 'http://example.com'
# GET
connection.get '/posts'
# POST payload
payload = {:title => 'Example'}
connection.post '/posts', payload
# now again, over SSL
# verify_mode is automatically set to OpenSSL::SSL::VERIFY_PEER
connection = Faraday.new 'https://example.com'
# turn off SSL
# (no use-case for this, really)
connection = Faraday.new 'https://example.com', :ssl => false
# turn off peer verification
connection = Faraday.new 'https://example.com', :ssl => {:verify => false}
# other SSL options
connection = Faraday.new 'https://example.com', :ssl => {
:client_cert => ...,
:client_key => ...,
:ca_file => ...,
:ca_path => ...,
:cert_store => ...
}
@theendcomplete
Copy link

Example for those who got here searching for example of TLS auth:

  def self.ping
    connection = Faraday::Connection.new 'https://host:443/ping', ssl: {
      ca_file: 'config/credentials/ROOT_CA.cer',
      client_key: OpenSSL::PKey::RSA.new(File.read('config/credentials/client.key')),
      client_cert: OpenSSL::X509::Certificate.new(File.read('config/credentials/agent.cer'))
    }
    connection.get.body
  end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment