2016-01-06 2 views
2

Я попытался поместить verify_ssl=>false в запрос, но он не работает.RestClient :: SSLCertificateNotVerified: SSL_connect return = 1 errno = 0 state = SSLv3 считать сертификат сервера B: не удалось проверить сертификат

Ниже мой код:

def login_request (username, password) 
    request_body_map = {:userName => username, :password => password} 
    request_header = {:content_type => 'application/json', :accept => 'application/json'} 
    begin 
    res = RestClient.post endpoint, request_body_map.to_json, {:header => request_header, :verify_ssl => false} 
    response_data = JSON.parse(res.body) 
    rescue Exception => e raise e 
    end 
end 
+0

возможно продублировать вопрос, пожалуйста, обратитесь к: http://stackoverflow.com/questions/38255071/restclient-get-returning-certificate- verify-failed – dannyxu

ответ

0

Попробуйте это:

def login_request (username, password) 
    request = {'userName': username, 'password': password}.to_json 
    url = "#{$url_host}#{$login_api}" 
    begin 
    res = RestClient.post(
     url, 
     request, 
     :content_type => :json, :accept => :json, 
     :verify_ssl => false) 
    response_data = JSON.parse(res.body) 
    $user_token = response_data['token'] 
    $userId = response_data['user']['userId'] 
    p response_data['user']['email'] 
    rescue Exception => e 
    end 
end 

Вы можете поместить данные для проверки подлинности с :varify_ssl.

+0

Это решило вашу проблему или нет? –

+0

Спасибо за ваш ответ! Все еще не работает ... Я исследовал этот вопрос в течение месяца, но он все еще там. –

+0

Это небезопасное обходное решение. –

0

Мы сталкиваемся с такой же точной ошибкой (B: проверка сертификата не удалась), и это заставляет меня гайки. Это начало показ для наших разработчиков по всем 10 октябрю, 2015.

В Authorize.NET форуме разработчиков есть много потоков с той же проблемой, два из которых являются недавними (first thread) (second thread) и оба пошли мертвые без разрешения, эти два потока начались примерно в то же время, когда мы столкнулись с этой проблемой, поэтому я предполагаю, что это связано с сертификатом badize/authorize.net с отсутствующей цепочкой сертификатов.

Эта точная проблема появилась до 2012 и 2014 годов (см. Их форум разработчиков), Authorize.net признал, что это было плохое изменение, внесенное ими в их сертификаты, а затем исправленное исправление, но на этот раз оно, похоже, является постоянным с середины октября.

PS: Я попытался установить каждый сертификат root/chain на нашем сервере, но эта проблема не устранена.

+1

Проблема исчезла, когда я изменил способ вызова запроса, например: res = RestClient :: Request.execute (: url => конечная точка, : method =>: post, : headers => request_header, : payload => request_body_map.to_json, : verify_ssl => false) response_data = JSON.parse (res.body) Надеюсь, что эта помощь! ^^ –

+0

Спасибо @NguyenThu, для меня выяснилось, что разработчики использовали ошибочные конфигурации authorize.net. – Blanq

+0

Я смог разрешить это в результате замены цепочки сертификатов на сервере. –

3

используйте RestClient::Request.execute(method: :get, url: url, headers: headers, verify_ssl: false)

verify_ssl не принято в RestCient.method

+0

Это небезопасное обходное решение. –

+0

@ DannyG автору вопроса хотелось использовать 'verify_ssl', и это синтаксис для использования, если небезопасно отключить проверку ssl, в противном случае я хотел бы знать, как это небезопасно? –

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

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