неверная SSL_версия, указанная в /usr/share/perl5/IO/Socket/SSL.pm строке 332

Поскольку я обновил свой компьютер с (k) ubuntu 12.04 до 12.10, я получаю это сообщение об ошибке при попытке отправить электронное письмо с помощью sendemail .

Установка более старой версии IO :: Socket :: SSL не является вариантом. У меня создалось впечатление, что все работает так, как должно, и сообщение является просто предупреждением.

Как я могу избавиться от этого сообщения?


SSL.pm

Я думаю, что нижеследующее связано с проблемой (/usr/share/perl5/IO/Socket/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; 

SendEmail

И в конце отправки я думаю, что это примерно в коде:

 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 } 

  • Сетевые проблемы после обновления Ubuntu
  • Создайте загрузочный ubuntu usb для mac или любой компьютер
  • Как правильно настроить яркость монитора во время загрузки?
  • Есть ли способ заблокировать запуск программы в определенные моменты?
  • Я установил Ubuntu вместо Windows. Где мои файлы с диска D?
  • Копирование файла с устройства MTP с использованием libmtp (через USB)
  • Что происходит с самонастраиваемыми пакетами, когда я `apt dist-upgrade`?
  • Проблемы с загрузкой и установкой. Windows 8 и Ubuntu 16.04
  • 7 Solutions collect form web for “неверная SSL_версия, указанная в /usr/share/perl5/IO/Socket/SSL.pm строке 332”

    На веб-сайте отслеживания ошибок Debian есть сообщение об ошибке: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=679911

    В нем также говорится об обходном пути:

    укажите в командной строке -o tls=no .

    Спасибо @Manolo Díaz на debian.org.

    Упрощение обхода:

    Заменить:

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

    С:

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

    Также обходным smtp.gmail.com , сделайте это, если требуется отправить с smtp.gmail.com :

     /usr/bin/sendemail on line 1907: 'SSLv3 TLSv1' => 'SSLv3' 

    как временное решение.

    Если вы все еще получаете ошибку сертификата после установки SSLversion, как показано выше, вам необходимо отключить проверку сертификата:

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

    Собственно, просто возьмите по умолчанию (удалите второй параметр). См. https://metacpan.org/pod/IO::Socket::SSL (поиск SSL_version). По умолчанию SSLv23:! SSLv3:! SSLv2.

    Я изменил строку 1906 в версии 1.56 для чтения

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

    (просто комментируя исходную строку)

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

    работает на debian wheezy с sendEmail 1.56-2 и libio-socket-ssl-perl 1.76-2 и

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

    работает с … / IO / Socket / SSL.pm: 1.74 sendEmail: 1.56 в Ubuntu.

    Это проблема в ubuntu и debian repos уже более года.

    Чтобы исправить это, я редактировал sendEmail-v1.55 в строке 1884, чтобы изменить «SSLv3 TLSv1» на «SSLv3».

    OSX 10.10.1

    Interesting Posts

    Определить тип файла с помощью файла magic-file и переименовать файл-суффикс соответственно

    Как ssh запрашивает пароль при перенаправлении всех входов и выходов?

    Завершение корневых процессов

    Что означает «следовая ловушка», когда сообщается zsh?

    Как определить путь ffmpeg при компиляции другого программного обеспечения?

    Консоль Linux печатает буква «q» в случайном порядке

    Нужны ли мне права root (admin) для запуска пользовательского пространства? (первичные события включены в ядре Linux)

    Как присвоить значение переменной, когда значение содержит символ $ в ней

    размещение данных с использованием cURL в скрипте

    Как разрезать текстовый файл на несколько файлов по 100 строк каждый?

    установка sysdig в ARM / Armbian Jessie – модуль, скомпилированный в неправильной версии ядра

    Как установить rastertoezpl на Pardus?

    gunzip и создавать каталоги, следующие за именем zip-файла

    Альтернатива для секунд ожидания, учитывающая системную нагрузку?

    Нет звука в видео HTML5 (Firefox / Chromium)

    Linux и Unix - лучшая ОС в мире.