Добрый день!
Я пытаюсь отправить POST-запросы на сервер через ssl-соединение с сертификатом .p12 из Windows 7 с библиотекой Ruby's Faraday.
Версия Ruby - ruby 2.3.3p222(2016-11-21 редакция 56859) [x64-mingw32]
Версия камня Фарадея: faraday (0.14.0, 0.9.2)
1) У меня есть папка со следующимфайлы сертификатов:
- [cert_name] .crt,
- [cert_name] .csr,
- [cert_name] .key,
- [cert_name] .p12
2) Что касается кода, у меня есть следующее:
require "faraday"
require "json"
require "openssl"
data = [JSON_object]
host = 'https://[domain_name]'
url = '[string]/[string]'
p12 = OpenSSL::PKCS12.new(File.open('[path_to_folder_with_cert_files]/[cert_name].p12', "rb").read, "[password]")
key = p12.key
cert = p12.certificate
connection = Faraday::Connection.new host, :ssl => {
:client_cert => cert,
:client_key => key,
:ca_file => '[path_to_folder_with_cert_files]/[cert_name].crt',
:verify => false
}
puts response.status = connection.post do |req|
req.url(url)
req.headers['Content-Type'] = @headers["content_type"]
req.body = data
end
Ответ имеет 403 Запрещено.Я протестировал без ssl-соединения данные, URL-адрес, параметры хоста и состояние 200 OK.
Пожалуйста, помогите, поскольку я не нашел учебника / вопроса по этому конкретному использованию Ruby's Faraday и OpenSSL :: PKCS12