Релси - Ограничете SSLCA грешка? - Curl::Err::SSLCACertificateError

Когато актуализирам моите Rails скъпоценни камъни, намирам тези грешки (само в производство, в среда за разработка работи добре):

Curl::Err::SSLCACertificateError

Изглежда, че това е грешка на SSL сертифициращия орган, но защо само в производството не работи? И какво мога да направя, за да разреша проблема?

Моят curb gem е v.0.8.3 с rails 3.2.8 (кметската актуализация беше рейк, сега е v.10.0.2, но не знам дали това влияе върху доброто функциониране на curb gem).

FYI, това е кодът, който предизвиква грешката:

    loginData = { :login => "myuser", :password => "mypass" }
    loginJson = ActiveSupport::JSON.encode(loginData)

    req = Curl::Easy.http_post("https://mysite.com", loginJson
    ) do |curl|
        curl.headers['Content-type'] = 'application/json'
    end

person damoiser    schedule 29.11.2012    source източник


Отговори (2)


Изглежда, че използвате самоподписан SSL сертификат на сървъра, което е добре. Правя същото за вътрешни услуги. Вие просто ще искате да уведомите клиента си и за персонализирания SSL сертификат, така че той да знае, че може да му се вярва.

Нещо като това трябва да свърши работа:

req = Curl::Easy.http_post("https://mysite.com", loginJson) do |curl|
  curl.headers['Content-type'] = 'application/json'
  curl.cacert = "/path/to/ca.crt"
  curl.cert = "/path/to/cert.pem"
end

Разбира се, вероятно ще искате да извлечете тези низови константи в конфигурационен файл.

person Cody A. Ray    schedule 10.05.2013
comment
Все още не съм тествал, но вашият отговор е по-добър (по-сигурен) от моя. - person damoiser; 20.05.2013
comment
Благодаря, @damoiser! Радвам се да помогна. - person Cody A. Ray; 20.05.2013

Намирам алтернативно решение, когато поискам "curl", поставям това допълнително приличие:

 curl.ssl_verify_peer = false

Не знам дали от гледна точка на сигурността е най-доброто решение, но за момента работи...

person damoiser    schedule 29.11.2012
comment
Без проверка на партньора, това е обект на атака човек по средата. Не препоръчвам. - person Cody A. Ray; 08.05.2013
comment
@CodyA.Ray Знам, но сървърът, където правя заявките, има персонализиран SSL сертификат (не е купен от CA). Може би има по-сигурен метод за приемане на този персонализиран сертификат? - person damoiser; 09.05.2013