অবৈধ SSL_version /usr/share/perl5/IO/Sket/SSL.pm লাইন 332 এ নির্দিষ্ট করা হয়েছে


9

যেহেতু আমি আমার পিসিটি (কে) উবুন্টু থেকে 12.04 থেকে 12.10 আপগ্রেড করেছি ব্যবহার করে কোনও ইমেল প্রেরণের চেষ্টা করার সময় আমি এই ত্রুটি বার্তাটি পাই sendemail

আইও :: সকেট :: এসএসএল এর পুরানো সংস্করণ ইনস্টল করা কোনও বিকল্প নয়। আমার ধারণা আছে যে সমস্ত এটির মতো কাজ করে এবং বার্তাটি কেবল একটি সতর্কতা।

আমি কীভাবে এই বার্তাটি থেকে মুক্তি পাব?


SSL.pm

আমি মনে করি সমস্যার সাথে নীচে কিছু করতে হবে (/usr/share/perl5/IO/Sket/SSL.pm)।

34  use constant DEFAULT_VERSION     => 'SSLv23:!SSLv2';

...

251         my %default_args = (
252                 Proto => 'tcp',
253                 SSL_server => $is_server,
254                 SSL_use_cert => $is_server,
255                 SSL_check_crl => 0,
256                 SSL_version     => DEFAULT_VERSION,
257                 SSL_verify_mode => SSL_VERIFY_NONE,
258                 SSL_verify_callback => undef,
259                 SSL_verifycn_scheme => undef,  # don't verify cn
260                 SSL_verifycn_name => undef,    # use from PeerAddr/PeerHost
261                 SSL_npn_protocols => undef,    # meaning depends whether on server or client side
262                 SSL_honor_cipher_order => 0,   # client order gets preference
263         );

...

332         ${*$self}{'_SSL_ctx'} = IO::Socket::SSL::SSL_Context->new($arg_hash) || return;

ইমেইল পাঠান

এবং সেন্ডমেইলের শেষে আমি মনে করি এটি কোড সম্পর্কে এখানেই রয়েছে:

1903     ## Start TLS if possible
1904     if ($conf{'tls_server'} == 1 and $conf{'tls_client'} == 1 and $opt{'tls'} =~ /^(yes|auto)$/) {
1905         printmsg("DEBUG => Starting TLS", 2);
1906         if (SMTPchat('STARTTLS')) { quit($conf{'error'}, 1); }
1907         if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'SSLv3 TLSv1')) {
1908             quit("ERROR => TLS setup failed: " . IO::Socket::SSL::errstr(), 1);
1909         }
1910         printmsg("DEBUG => TLS: Using cipher: ". $SERVER->get_cipher(), 3);
1911         printmsg("DEBUG => TLS session initialized :)", 1);
1912 
1913         ## Restart our SMTP session
1914         if (SMTPchat('EHLO ' . $opt{'fqdn'})) { quit($conf{'error'}, 1); }
1915     }
1916     elsif ($opt{'tls'} eq 'yes' and $conf{'tls_server'} == 0) {
1917         quit("ERROR => TLS not possible! Remote SMTP server, $conf{'server'},  does not support it.", 1);
1918     }

1
আপাতত এটির জন্য এসএসএলভি 3 টিএলএসভি 1'র প্রেরণমেল লাইন 1907 'এসএসএলভি 3' এ পরিবর্তন করে সমাধান করা হয়েছে, তবে একটি প্যাকেজ থেকে ইনস্টল করা ফাইল সম্পাদনা করা খারাপ
জিপ্পি

নতুন ডিবিয়ান সংস্করণে আমার এখনও এই সমস্যাটি রয়েছে, তবে আমি এখন সেই লাইনটি খুঁজে পাচ্ছি না ..... টিএলএসকে উপেক্ষা করা ছাড়া আর কোনও সমাধান কাজ করছে না। = (
লুসিয়ানো

উত্তর:


8

ডেবিয়ান বাগ ট্র্যাকার ওয়েবসাইটে একটি বাগ রিপোর্ট রয়েছে: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=679911

এটি একটি কার্যবিধির কথাও বলেছে:

-o tls=noকমান্ড লাইনে একটি বিকল্প হিসাবে উল্লেখ করুন।

ডেবিয়ান.আরগে মনোলো দাজাজকে ধন্যবাদ।


কর্মক্ষেত্র হিসাবে এটি ঠিক আছে, তবে ঠিক করা দরকার।
Znik

4

আসলে, কেবলমাত্র ডিফল্ট নিন (দ্বিতীয় প্যারামিটারটি সরিয়ে দিন)। Https://metacpan.org/pod/IO::Sket::SSL দেখুন (SSL_version অনুসন্ধান করুন)। ডিফল্টটি SSLv23:! SSLv3:! SSLv2।

আমি পড়ার জন্য 1901 লাইনে v1.56 পরিবর্তন করেছি

#        if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'SSLv3 TLSv1')) {
    if (! IO::Socket::SSL->start_SSL($SERVER)) {

(কেবলমাত্র মূল লাইনটি সম্পর্কে মন্তব্য করা)


3

সহজ কাজটি হ'ল:

প্রতিস্থাপন করুন:

m{^(!?)(?:(SSL(?:v2|v3|v23|v2/3))|(TLSv1[12]?))$}i

সঙ্গে:

m{^(!?)(?:(SSL(?:v2|v3|v23|v2/3))|(TLSv1[12]?))}i

আমার সমস্যাটি হ'ল এই ফিক্সটি নেট :: টুইটার
ডেভ জ্যাকোবি

1
উবুন্টু 14.04
রাহুল পাতিল

যেহেতু কিছু লোক এখনও এই উত্তরের সমাধানটিকে আইও :: সকেট :: এসএসএলে বাগ হিসাবে অভিযোগ হিসাবে সমাধান হিসাবে বিবেচনা করে: সমস্যাটি আইও :: সকেট :: এসএসএলে নয় তবে সেন্ডইমেইলে একটি বাগ, যা অনিচ্ছাকৃত ২০০৯ । বিস্তারিত: এসএসএল_ভার্সনের সিনট্যাক্সটি ভুল এবং সময় কোডটি লেখার সময় এমনকি বৈধ ছিল না, কেবল আইও :: সকেট :: এসএসএল তখন অভিযোগ করেননি। সমাধানটি কেবলমাত্র সেন্ডমেইল থেকে এসএসএল_ভার্সনের সেটিংস সরিয়ে ফেলার জন্য। Rt.cpan.org/Public/Bug/Display.html?id=77401 দেখুন ।
স্টিফেন অলরিচ


2

উপরে বর্ণিত এসএসএলভিশন ঠিক করার পরেও যদি আপনি শংসাপত্রের ত্রুটিটি পান তবে আপনার শংসাপত্র চেকিং অক্ষম করতে হবে:

if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'SSLv23:!SSLv2', SSL_verify_mode => 0)) {

যুগে যুগে আমি নিজে সমস্যাটি দেখিনি এবং উবুন্টু প্যাকেজটি মাঝামাঝি সময়ে স্থির হয়ে গেছে। এই সমস্যাটি সমাধানের প্রথম প্রচেষ্টাটি হ'ল সিস্টেমটিকে প্যাচ করা / সফ্টওয়্যারটির সর্বাধিক বর্তমান সংস্করণ ব্যবহার করা উচিত। বিকল্প সমাধান অন্য দৃষ্টিকোণ থেকে আকর্ষণীয় যদিও, THNX।
জিপ্পি

0
if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'SSLv3')) {<br>

সেন্ডইমেল 1.56-2 এবং লাইবিও-সকেট-এসএসএল-পার্ল 1.76-2 এবং ডেবিয়ান হুইজে কাজ করে

if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'SSLv23:!SSLv2')) {<br>

উবুন্টুতে… / আইও / সকেট / এসএসএল.এমএম: 1.74 সেন্ডইমেল: 1.56 এর সাথে কাজ করে।

এটি এক বছর ধরে উবুন্টু এবং ডেবিয়ান রেপোতে সমস্যা হয়ে দাঁড়িয়েছে।


0

এটি ঠিক করার জন্য, আমি 'এসএসএলভি 3 টিএলএসভি 1' কে 'এসএসএলভি 3' এ পরিবর্তন করতে 1884 নং লাইনে সেন্ডইমেইল-ভি 1.55 সম্পাদনা করেছি।

ওএসএক্স 10.10.1


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.