निम्नलिखित कोड पर विचार करें गलत प्रमाण पत्र के साथ एक https सर्वर से कनेक्ट करने के लिए:रूबी
require 'net/https'
uri = URI.parse("https://host/index.html")
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.path)
response = http.request(request)
जहां https://host/index.html
सर्वर पर गलत प्रमाण पत्र के साथ एक मान्य पता है।
रूबी के पुराने संस्करणों (विशेष रूप से 1.8.7-पी 334 और 1.9.2-पी 180) पर यह कोड ठीक काम करता है।
OpenSSL::SSL::SSLError: SSL_connect SYSCALL returned=5 errno=0 state=unknown state
अंतिम पंक्ति पर
: हाल के सभी संस्करणों (1.8.7-p352, 1.9.2-p290 और 1.9.3-p0) पर यह निम्न अपवाद फेंकता है।
OpenSSL::SSL::VERIFY_PEER
पर verify_mode बदलना वास्तव में त्रुटि बताता है कि यह सेटिंग के बावजूद प्रमाणपत्र को सत्यापित करने का प्रयास कर रहा है।
मैं अवैध प्रमाणपत्र को अनदेखा करने और कनेक्ट करने के लिए रूबी को कैसे समझा सकता हूं?
को सत्यापित मोड संपत्ति मेरे लिए बहुत समस्या समाधान के '# post_form' के बजाय का उपयोग करते हुए' # start'। अजीब लगता है ... सुझाव के लिए धन्यवाद। –
आपको स्टार्ट विधि का उपयोग क्यों करना है? – jspooner
मुझे केवल "आवश्यकता" नेट/https "' की आवश्यकता होती है, पहले केवल "आवश्यकता" नेट/http "' – botchniaque