2012-01-04 17 views
6

साथ मैं रूबी 1.8.7 (या 1.9.2), दोनों के लिए एक ही परिणाम के साथ आईआरबी से एक सरल OpenSSL::X509::Certificate.new(File.read("testuser.p12")) करने के लिए कोशिश कर रहा हूँ। त्रुटि मैं वापस पाने के OpenSSL::X509::CertificateError: nested asn1 errorरूबी फ़ाइल पढ़ने में त्रुटि OpenSSL

यह एक गहरे लाल रंग का मुद्दा है, या यह सुझाव है प्रमाणपत्र ही विकृत है? मुझे ऐसी त्रुटियों का प्रदर्शन करने वाले एक अमेज़ॅन प्रमाण के चारों ओर घूमने वाली कुछ समान रिपोर्टें मिली हैं, जो प्रमाणित साबित हुईं। हालांकि यह ब्राउज़र में काम करता है। इसे हल करने के सुझावों पर सुझाव?

उत्तर

10

"testuser.p12" पोस्टफ़िक्स के अनुसार एक PKCS # 12 फ़ाइल हो रहा है। X.50 9 प्रमाणपत्र प्रारूप के रूप में PKCS # 12 प्रारूप को पढ़ना ASN.1 डिकोडिंग त्रुटि का कारण बनता है।

आप OpenSSL::PKCS12.new(File.read("testuser.p12")) बजाय क्या करना चाहिए। फ़ाइल (यह सामान्य है) पासफ़्रेज़ से सुरक्षित है, तो दूसरा PKCS12#certificate और PKCS12#ca_certs तरीकों से OpenSSL::PKCS12.new(File.read("testuser.p12"), "pass")

आप प्रमाणपत्र और CA प्रमाणपत्रों निकाल सकते हैं की तरह PKCS12.new के लिए पैरामीटर के रूप में पदबंध दे।

p12 = OpenSSL::PKCS12.new(File.read("testuser.p12"), "pass") 
p p12.certificate 
p p12.ca_certs 
+0

धन्यवाद! यह समस्या प्रतीत होती है। मुझे बहुत ज्यादा गड़बड़ी से निपटना नहीं पड़ा और मैं एक स्पष्ट रूप से खराब उदाहरण का पालन कर रहा था। आपकी पोस्ट और [यह एक] (http://stackoverflow.com/questions/8167579/connect-to-web-server-via-phonegap-with-ssl-and-certificate) ने – yodafan86

+0

अद्यतन में मदद की: यह बस काम कर रहा था रुक गया और मैं क्यों नहीं समझ सकता। यह सचमुच एक परीक्षण के रनों के बीच उड़ा, और अब भी irb में, कि पी 12 = ओपनएसएसएल लाइन का दावा है कि इसे 4 पैरामीटर की जरूरत है? 'नेट/https' की आवश्यकता में कुछ निर्भरता परिवर्तन आया? मुझे अन्य 2 पैरामीटर की आवश्यकता हो सकती है? किसी भी मदद की बहुत सराहना की, यह मुझे परेशान है! – yodafan86

+0

क्या आप इसे हल करने में सक्षम थे? – shailesh

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