बिना पोस्ट अनुरोध बनाने मैं, क्योंकि यह सुरक्षा हमलों अप opend और पीईएम प्रमाण पत्र के बिना है SSL के साथ लेकिन OpenSSL :: एसएसएल :: VERIFY_NONE बिना पोस्ट अनुरोध बनाने का प्रयास करें। लेकिन मैं समस्याओं स्थित भेजें पोस्ट अनुरोध के लिए मेरे गहरे लाल रंग का कोड को पकड़ने:रूबी सिनात्रा पीईएम और OpenSSL :: एसएसएल :: VERIFY_NONE
post '/test/test1' do
cross_origin
post_data = request.body.read
res_Data = JSON.parse(post_data)
userName = res_Data['username']
@responseFromServer=''
uri = URI('https://test.com/test1')
Net::HTTP.start(uri.host, uri.port,
:use_ssl => uri.scheme == 'https',
:verify_mode => OpenSSL::SSL::VERIFY_NONE) do |http|
request = Net::HTTP::Post.new uri.request_uri
request.basic_auth 'aa', 'bb'
request.body = {'username' =>userName}.to_json
response = http.request request
@responseFromServer = response.body.to_s
end
newJson = JSON.parse(@responseFromServer)
status_msg = newJson['status']['status_msg']
if (status_msg == "Success")
return 'true'
end
return 'false'
end
यह है विधि काम किया लेकिन वह OpenSSL :: एसएसएल :: VERIFY_NONE का उपयोग करें। ओपनएसएसएल :: एसएसएल :: VERIFY_NONE और पीईएम प्रमाण पत्र के बिना POST अनुरोध भेजने के लिए विधि कैसे बनाएं?
संपादित SSL/HTTPS अनुरोध अद्यतन: वहाँ कुछ अच्छे कारण हैं इस कोड उदाहरण खराब है। यह एक संभावित सुरक्षा भेद्यता का परिचय देता है यदि आप आवश्यक हैं कि आप जिस सर्वर से कनेक्ट कर रहे हैं उसकी पहचान सत्यापित करने के लिए सर्वर प्रमाण पत्र का उपयोग करें। हालांकि इस मुद्दे के लिए एक फिक्स है!
require "net/https"
require "uri"
uri = URI.parse("https://secure.com/")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
response.body
response.status
response["header-here"] # All headers are lowercase
SSL/HTTPS पीईएम प्रमाण पत्र के साथ अनुरोध
require "net/https"
require "uri"
uri = URI.parse("https://secure.com/")
pem = File.read("/path/to/my.pem")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.cert = OpenSSL::X509::Certificate.new(pem)
http.key = OpenSSL::PKey::RSA.new(pem)
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
request = Net::HTTP::Get.new(uri.request_uri)
मेरा प्रश्न: कैसे पीईएम और OpenSSL :: एसएसएल :: VERIFY_NONE बिना POST विधि बनाने के लिए?
यह आपकी मदद कर सकता है: http://stackoverflow.com/questions/1113422/how-to-bypass-ssl-certificate-verification-in-open-uri – karlingen
@karlingen आपका मतलब है कि मुझे उपयोग की आवश्यकता है ** ओपनएसएसएल: : एसएसएल :: VERIFY_PEER = ओपनएसएसएल :: एसएसएल :: VERIFY_NONE **? यह काम करता है है, लेकिन मैं बिना OpenSSL :: एसएसएल :: VERIFY_NONE ** पोस्ट अनुरोध का उपयोग की जरूरत है ** –
@karlingen या अगर मैं का उपयोग ** OpenSSL :: एसएसएल :: VERIFY_PEER = OpenSSL :: एसएसएल :: VERIFY_NONE ** यह हल है सुरक्षा की समस्या? –