I've been using this package and today we've been getting some errors from our production as seen below.
I can't seem to figure out why this has occurred. I've had to turn ssl_verify_peer off, but I'm surprised it's unable to verify anything. As far as I can tell, ShipCompliant's SSL appears to be solid and so does the host machine. Yet, something is failing.
No SSL certs are custom added to Excon and I'm wondering if it could be an issue with ShipCompliant.
Excon::Error::Certificate: SSL_connect returned=1 errno=0 state=error: certificate verify failed (unable to get local issuer certificate) (OpenSSL::SSL::SSLError) Unable to verify certificate. This may be an issue with the remote host or with Excon. Excon has certificates bundled, but these can be customized:
`Excon.defaults[:ssl_ca_path] = path_to_certs`
`ENV['SSL_CERT_DIR'] = path_to_certs`
`Excon.defaults[:ssl_ca_file] = path_to_file`
`ENV['SSL_CERT_FILE'] = path_to_file`
`Excon.defaults[:ssl_verify_callback] = callback`
(see OpenSSL::SSL::SSLContext#verify_callback)
or:
`Excon.defaults[:ssl_verify_peer] = false` (less secure).
/var/web/app/shared/bundle/ruby/2.6.0/gems/excon-0.62.0/lib/excon/ssl_socket.rb:118:in `connect_nonblock'
/var/web/app/shared/bundle/ruby/2.6.0/gems/excon-0.62.0/lib/excon/ssl_socket.rb:118:in `initialize'
/var/web/app/shared/bundle/ruby/2.6.0/gems/excon-0.62.0/lib/excon/connection.rb:429:in `new'
/var/web/app/shared/bundle/ruby/2.6.0/gems/excon-0.62.0/lib/excon/connection.rb:429:in `socket'
/var/web/app/shared/bundle/ruby/2.6.0/gems/excon-0.62.0/lib/excon/connection.rb:111:in `request_call'
/var/web/app/shared/bundle/ruby/2.6.0/gems/excon-0.62.0/lib/excon/middlewares/mock.rb:48:in `request_call'
/var/web/app/shared/bundle/ruby/2.6.0/gems/excon-0.62.0/lib/excon/middlewares/instrumentor.rb:26:in `request_call'
/var/web/app/shared/bundle/ruby/2.6.0/gems/excon-0.62.0/lib/excon/middlewares/base.rb:16:in `request_call'
/var/web/app/shared/bundle/ruby/2.6.0/gems/excon-0.62.0/lib/excon/middlewares/base.rb:16:in `request_call'
/var/web/app/shared/bundle/ruby/2.6.0/gems/excon-0.62.0/lib/excon/middlewares/base.rb:16:in `request_call'
/var/web/app/shared/bundle/ruby/2.6.0/gems/excon-0.62.0/lib/excon/connection.rb:260:in `request'
/var/web/app/shared/bundle/ruby/2.6.0/gems/excon-0.62.0/lib/excon/connection.rb:339:in `get'
/var/web/app/shared/bundle/ruby/2.6.0/gems/httpi-2.4.4/lib/httpi/adapter/excon.rb:25:in `request'
/var/web/app/shared/bundle/ruby/2.6.0/gems/httpi-2.4.4/lib/httpi.rb:161:in `request'
/var/web/app/shared/bundle/ruby/2.6.0/gems/httpi-2.4.4/lib/httpi.rb:127:in `get'
/var/web/app/shared/bundle/ruby/2.6.0/gems/wasabi-3.5.0/lib/wasabi/resolver.rb:43:in `load_from_remote'
/var/web/app/shared/bundle/ruby/2.6.0/gems/wasabi-3.5.0/lib/wasabi/resolver.rb:33:in `resolve'
/var/web/app/shared/bundle/ruby/2.6.0/gems/wasabi-3.5.0/lib/wasabi/document.rb:142:in `xml'
/var/web/app/shared/bundle/ruby/2.6.0/gems/wasabi-3.5.0/lib/wasabi/document.rb:160:in `parse'
/var/web/app/shared/bundle/ruby/2.6.0/gems/wasabi-3.5.0/lib/wasabi/document.rb:147:in `parser'
/var/web/app/shared/bundle/ruby/2.6.0/gems/wasabi-3.5.0/lib/wasabi/document.rb:64:in `soap_actions'
/var/web/app/shared/bundle/ruby/2.6.0/gems/savon-2.12.0/lib/savon/operation.rb:22:in `ensure_exists!'
/var/web/app/shared/bundle/ruby/2.6.0/gems/savon-2.12.0/lib/savon/operation.rb:15:in `create'
/var/web/app/shared/bundle/ruby/2.6.0/gems/savon-2.12.0/lib/savon/client.rb:32:in `operation'
/var/web/app/shared/bundle/ruby/2.6.0/gems/savon-2.12.0/lib/savon/client.rb:36:in `call'
/var/web/app/shared/bundle/ruby/2.6.0/bundler/gems/ship_compliant-ruby-7fb91ddf9ef7/lib/ship_compliant/client.rb:38:in `call'
/var/web/app/shared/bundle/ruby/2.6.0/bundler/gems/ship_compliant-ruby-7fb91ddf9ef7/lib/ship_compliant/add_update_brand.rb:41:in `brand'
#<Excon::Connection:7edaa10
@data={
:chunk_size=>1048576,
:ciphers=>"ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS",
:connect_timeout=>60,
:debug_request=>false,
:debug_response=>false,
:headers=>{},
:idempotent=>false,
:instrumentor_name=>"excon",
:middlewares=>[
Excon::Middleware::ResponseParser,
Excon::Middleware::Expects,
Excon::Middleware::Idempotent,
Excon::Middleware::Instrumentor,
Excon::Middleware::Mock
],
:mock=>false,
:nonblock=>true,
:omit_default_port=>false,
:persistent=>false,
:read_timeout=>60,
:retry_limit=>4,
:ssl_verify_peer=>true,
:ssl_uri_schemes=>["https"],
:stubs=>:global,
:tcp_nodelay=>false,
:thread_safe_sockets=>true,
:uri_parser=>URI,
:versions=>"excon/0.62.0 (x86_64-linux) ruby/2.6.2",
:write_timeout=>60,
:host=>"ws.shipcompliant.com",
:path=>"/services/1.2/coreservice.asmx",
:port=>443,
:query=>"WSDL",
:scheme=>"https",
:body=>nil,
:hostname=>"ws.shipcompliant.com"
}
@socket_key="https://ws.shipcompliant.com:443"
@_excon_sockets={6576560=>{}}
>