मैं PHP/curl से पर्ल और एलडब्ल्यूपी :: UserAgent पर एक एप्लिकेशन पोर्ट कर रहा हूं। मुझे किसी वेब सर्वर पर POST अनुरोध करने और क्लाइंट प्रमाणपत्र और कुंजी फ़ाइल प्रदान करने की आवश्यकता है। PHP कोड मैं दोहराने की कोशिश कर रहा हूँ यह है:एसएसएल और क्लाइंट प्रमाण पत्र के साथ एलडब्ल्यूपी का उपयोग
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSLCERT, "/path/to/certificate.pem");
curl_setopt($ch, CURLOPT_SSLKEY, "/path/to/private.key");
curl_setopt($ch, CURLOPT_SSLKEYPASSWD, "secretpassword");
और यहाँ मेरी पर्ल कोड है:
my $ua = LWP::UserAgent->new();
$ua->ssl_opts(
SSL_verify_mode => 0,
SSL_cert_file => '/path/to/certificate.pem',
SSL_key_file => "/path/to/private.key",
SSL_passwd_cb => sub { return "secretpassword"; }
);
PHP कोड सफलतापूर्वक सर्वर से कनेक्ट लेकिन पर्ल कोड के साथ विफल:
एसएसएल त्रुटि त्रुटि त्रुटि: 140 9 4410: एसएसएल दिनचर्या: एसएसएल 3_READ_BYTES: एसएसएलवी 3 अलर्ट हैंडशेक विफलता
मैं यह नहीं समझ सकता कि मैं क्या खो रहा हूं।
क्या 'private.key' (PHP) और' private.pem' (पर्ल) पोर्टिंग का एक टाइपो या हिस्सा है? – amon
[ssl_opts] (https://metacpan.org/module/LWP::UserAgent#ATTRIBUTES) पर एकाधिक तर्कों को पास करना दस्तावेज नहीं है। सुरक्षित होने के लिए, या तो कई बार ssl_opts को कॉल करें या उन्हें कन्स्ट्रक्टर में पास करें। मुझे लगता है कि यह काम करने के लिए होता है, लेकिन बेहतर सुरक्षित है। आप [बग/गायब सुविधा के रूप में इसकी रिपोर्ट भी कर सकते हैं] (https://rt.cpan.org/Public/Bug/Report.html?Queue=libwww-perl)। – Schwern
जब मैं अपना कोड अस्पष्ट करता था तो यह सिर्फ एक टाइपो था। यह दोनों के लिए निजी.की होना चाहिए। ध्यान देने के लिए धन्यवाद लेकिन यह समस्या नहीं है। अभी भी सहायता चाहिए! :) – kent