मैं एक HTTPS वेब सेवा तक पहुंचने का प्रयास कर रहा हूं जो रूबी EventMachine का उपयोग कर SSL प्रमाणपत्र प्रमाणीकरण का उपयोग करता है लेकिन मुझे इसे काम नहीं मिल रहा है। ऊपर आउटपुट <SSL_incomp>
उठाया RuntimeError संदेश के बाद चल रहा हैरूबी EventMachine के साथ काम करने के लिए मैं SSL क्लाइंट प्रमाण पत्र के साथ एक HTTPS अनुरोध कैसे प्राप्त करूं?
require 'rubygems'
require 'em-http'
EventMachine.run do
url = 'https://foobar.com/'
ssl_opts = {:private_key_file => '/tmp/private.key',
:cert_chain_file => '/tmp/ca.pem',
:verify_peer => false}
http = EventMachine::HttpRequest.new(url).get :ssl => ssl_opts
http.callback do
p http.response_header.status
p http.response_header
p http.response
EventMachine.stop
end
http.errback do
EventMachine.stop
fail "Request failed"
end
end
:
मैं इसे खत्म-टू-एंड परीक्षण करने के लिए निम्नलिखित सरल कोड ब्लॉक में लिखा है। मैंने :verify_peer
के साथ चलने की कोशिश की है जो सत्य और गलत दोनों पर सेट है और यह मुझे एक ही त्रुटि देता है। विकल्प के बिना EventMachine::HttpRequest#get
चला रहा है।
मैंने :ssl
विकल्प (यानी प्रमाण के बिना सादा HTTPS) के बिना जीमेल (https://mail.google.com) के अनुरोध को भेजने का भी प्रयास किया है और यह काम करता है, स्टेटस कोड 200, हेडर और बॉडी आउटपुट करता है।
मैं कर्ल के साथ वेब सेवा से एक ही अनुरोध कर रही है की कोशिश की है और कहा कि काम करता है:
curl --silent --cert /tmp/private.key --cacert /tmp/ca.pem https://foobar.com/
मैं या है कि मैं या तो उन्हें-http अनुरोध मणि या EventMachine उपयोग कर रहा हूँ सोच रहा हूँ गलत तरीके से एसएसएल कि फाइलें एक प्रारूप में हैं जो कर्ल के साथ काम करती हैं लेकिन EventMachine नहीं।
मैं जानता हूं कि ऊपर दिए गए उदाहरण को कैसे हल किया जाए या EventMachine का उपयोग करके एक समान उदाहरण प्रदान करें, तो इसकी बहुत सराहना की जाएगी!