Мне нужно иметь дело с каким-то сторонним API, для которого требуется соединение https.
У меня даже есть файл сертификата mycert.pem и я пытаюсь соединиться с API следующим образом:
https = Net::HTTP.new(uri.host, uri.port)
https.use_ssl = true
https.verify_mode = OpenSSL::SSL::VERIFY_PEER
https.ca_file = File.join(Rails.root, "data", "certs", "mycert.pem")
https.ca_path = [Rails.root, "data", "certs"].join("/")
https.start {
data = {
<here some request data>
}.to_json
https.request_post([API_HOST, API_URL].join('/'), data) {|res|
print res.body
}
}
Но у меня всегда возникает ошибка авторизации из этого API, как и у меня недействительный (или устаревший) сертификат. Даже я уверен, что это не так и моя проблема с клиентом, потому что другой клиент соединяется с этим API (и тем же сертификатом) без проблем.
Итак, вопрос
Как правильно https соединиться с сервисом от ruby? Может я что-то потерял или сделал что-то не так?