2012-06-29 15 views
8

मैं एक शॉपिफ़ ऐप (shopify_app मणि का उपयोग करके) विकसित करने के लिए उबंटू 12.04 एलटीएस डेस्कटॉप का उपयोग कर रहा हूं, और कॉलबैक यूआरएल को संसाधित करते समय मैं इस समस्या में भाग गया।Shopify + उबंटू 12.04 एलटीएस + फैराडे मुद्दा = पुराने ओपनएसएसएल का उपयोग करने के लिए ठीक है?

Faraday::Error::ConnectionFailed (Connection reset by peer - SSL_connect) 

को देखते हुए समूह here Shopify, एप्लिकेशन के तहत चर्चा और यहाँ, ऐसा लगता है कि इस समस्या Ubuntu 12.04 और उसके OpenSSL के साथ है। मैंने सबसे अद्यतित ओपनएसएसएल स्थापित करने का प्रयास किया, लेकिन कुछ भी नहीं। एक विकल्प है कि मैं found एक अलग, पुराने ओपनएसएसएल का उपयोग करना था, जो कि आरवीएम प्रदान करता है।

$ rvm remove 1.9.3 (or whatever version of ruby you are using) 
$ rvm pkg install openssl 
$ rvm install 1.9.3 --with-openssl-dir=$rvm_path/usr 

और अब Shopify ऐप ठीक काम कर रहा है। यह एपीआई से कनेक्ट कर सकते हैं। (यह टिप अन्य उबंटू 12.04 उपयोगकर्ताओं की मदद कर सकती है!)

तो, मेरा सवाल है: क्या यह सबसे अच्छा समाधान है? मैं पुराने ओपनएसएसएल संस्करण के बारे में थोड़ा चिंतित हूं। इसमें कुछ सुरक्षा समस्याएं हो सकती हैं। क्या इस के साथ ऐप विकसित करना सुरक्षित है?

और जब मैं ऐप को तैनात करता हूं (उदाहरण के लिए हेरोकू), क्या पुराने ओपनएसएसएल के साथ सुरक्षा समस्या होगी?

अग्रिम धन्यवाद!

+0

क्या है OpenSSL के संस्करण है कि, वैसे भी RVM के साथ आता है? – InternetSeriousBusiness

+0

धन्यवाद, इसने मेरे लिए मुद्दा हल किया। @InternetSeriousBusiness - ओपनएसएसएल I का संस्करण अभी स्थापित किया गया था 0.9.8 – ndbroadbent

+0

क्षमा करें, बहुत जल्द बात की। अब मुझे यह एसएसएल त्रुटि मिल रही है: SSL_connect वापस = 1 errno = 0 state = SSLv3 सर्वर प्रमाण पत्र पढ़ें बी: प्रमाणपत्र सत्यापित विफल – ndbroadbent

उत्तर

0

आप हमेशा ओपनएसएसएल के अंतिम संस्करण का उपयोग करेंगे।

1

ओपनएसएसएल का नवीनतम संस्करण अभी तक नहीं खोजे गए सुरक्षा छेदों का एक पवित्र विवाह है, मैं कहूंगा कि आपको उस विशेष क्षण में आपके लिए काम करने वाली लाइब्रेरी का उपयोग करना चाहिए। सुरक्षा छेद के बिना कोई सॉफ्टवेयर नहीं है, और जब तक कि आप नवीनतम एसएसएल संस्करणों के साथ संगत कुछ अपग्रेड करने के लिए सर्वर-साइड को प्रभावित नहीं कर सकते हैं, मुझे डर है कि आपके विकल्प सीमित हैं।

1

सबसे हाल ही में OpenSSL पुस्तकालय का उपयोग करते समय अपने ग्राहक सबसे अधिक संभावना TLS 1.2, HTTPS में इस्तेमाल किया और हाल ही में SSL/TLS प्रोटोकॉल का उपयोग कर कनेक्ट करने के लिए कोशिश कर रहा है। हमारे लोड संतुलन हार्डवेयर में टीएलएस 1.2 के साथ एक ज्ञात समस्या है, हालांकि हम इसके बारे में तब तक अवगत नहीं थे जब तक कि मैं स्वतंत्र रूप से इस बग पर खुद को ठोकर नहीं डालता।

मैंने शेष ऑपरेशंस टीम को इसके बारे में जानकारी दी है, और मुझे उम्मीद है कि हम इसे जल्द से जल्द ठीक कर देंगे। तब तक, आप

http.ssl_version = :TLSv1

का उपयोग TLS 1.0 के बजाय का उपयोग करने के रूबी मजबूर करने के लिए कर सकते हैं।

require 'active_resource/connection' 

class ActiveResource::Connection 
    def apply_ssl_options_with_ssl_version(http) 
    apply_ssl_options_without_ssl_version(http) 

    http.ssl_version = @ssl_options[:ssl_version] if @ssl_options[:ssl_version] 

    http 
    end 

    alias_method_chain :apply_ssl_options, :ssl_version 
end 

अब आप

ShopifyAPI::Base.ssl_options = {:ssl_version => :TLSv1}

उपयोग कर सकते हैं समस्या को हल करने के लिए:

यहाँ कैसे ActiveResource, मणि कि shopify_api मणि आंतरिक रूप से उपयोग किए जाने वाले इस समाधान को लागू करने के का एक उदाहरण है ।

5

अन्य सुझाव हमारे लिए काम नहीं करते थे। विशेष रूप से हमें :TLSv1 के बजाय :SSLv3 को मजबूर करने की आवश्यकता थी। (दोनों स्टॉक उबंटू 12.04.01 रूबी 1.9.3 और जिसे हम पैसेंजर पीपीएम से उपयोग करते हैं।)

इसके अलावा, @ssl_options परिभाषित होने की जांच की आवश्यकता है। मैंने सक्रिय संसाधन संसाधन से एक की प्रतिलिपि बनाई।

हम config/initializers/shopify_ssl.rb में इस गिरा दिया और सब कुछ विलक्षण है:

require 'active_resource/connection' 

class ActiveResource::Connection 
    def apply_ssl_options_with_ssl_version(http) 
    apply_ssl_options_without_ssl_version(http) 
    return http unless defined?(@ssl_options) 
    http.ssl_version = @ssl_options[:ssl_version] if @ssl_options[:ssl_version] 
    http 
    end 
    alias_method_chain :apply_ssl_options, :ssl_version 
end 

ShopifyAPI::Base.ssl_options = { :ssl_version => :SSLv3 } 
+0

यह काम करता है। मैं अन्य सुझावों का उपयोग करने में असमर्थ था: टीएलएसवी 1 या तो काम कर रहा था। यह समाधान उबंटू 12.04 और रूबी 1.9.3 पर मेरे लिए काम किया। धन्यवाद!! :) –

+0

आप महोदय, नायक हैं। कृपया इस केप को स्वीकार करें। –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^