Проверьте самоподписанный сертификат TLS для HTTPS в Ruby - PullRequest
2 голосов
/ 19 марта 2019

Как использовать проверку SSL-сертификата в GET-запросе в RUBY (используя параметр пароля в URL)? ->

require 'net/https'
require 'uri'

uri = URI.parse(ARGV[0] || 'https://example.com?password=my_password')

http = Net::HTTP.new(uri.host, uri.port)

if uri.scheme == "https" 

    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER
    http.ca_file=File.join(File.dirname(__FILE__),
             "/Users/me/Desktop/demp.pem")
end

http.start do
    http.request_get(uri.path) do |res|

print res.body

end

end

-> вывод

SSL_connect возвращено = 1 errno = 0 состояние = ошибка: сбой проверки сертификата (самозаверяющий сертификат в цепочке сертификатов) (OpenSSL :: SSL :: SSLError)

1 Ответ

0 голосов
/ 21 марта 2019

Это сработало для меня.

require 'net/http'
require 'net/https'
require 'openssl'
require 'uri'
require 'json'


ContentURI = URI.parse("example.com")
@cert_raw = File.read('cert.pem')
TestDataPath = '.'

req = Net::HTTP::Get.new(ContentURI.path)
https = Net::HTTP.new(ContentURI.host, ContentURI.port)
https.use_ssl = true
https.cert = OpenSSL::X509::Certificate.new(@cert_raw)
https.key = OpenSSL::PKey::RSA.new(@cert_raw)
https.verify_mode = OpenSSL::SSL::VERIFY_PEER
resp = https.start { |cx| cx.request(req) }
p resp
p resp.body
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...