lwp-запросите Сбои После Обновления Centos 7

Вы также можете попробовать следующий раствор Python2:

#!/usr/bin/env python2
import csv
with open('file_1') as f1:
    file_1_list = [line[0] for line in csv.reader(f1)]
with open('file_2') as f2:
    for line in csv.reader(f2):
        if line[0] not in file_1_list:
            print ' '.join(line)
0
25.01.2015, 12:41
1 ответ

IO :: Socket :: SSL проверяет, что имя в сертификате соответствует названию, к которому вы подключаетесь, но Crypt :: Slley не делает. Новее LWP также также проверяет цепочку сертификата по умолчанию, но, возможно, это также сделано с помощью более старой версии LWP, которую вы использовали.

Я рекомендую вам позвонить в программу с отладкой SSL, чтобы увидеть фактическую причину проблемы:

perl -MIO::Socket::SSL=debug4 program.pl

, то вы можете управлять SSL_OPTS , которые должны быть сделаны, см. Perldoc IO :: Socket :: SSL Для получения более подробной информации о вариантах:

  • Использование SSL_CA_FILE Если вы используете самозагодный сертификат или если сертификат не выдан ни одним из обычно доверенных корневых CAS.
  • Используйте SSL_verifyCn_name , чтобы установить имя, которое следует ожидать в сертификате. То есть если у вас есть имя для www.example.com в сертификате в сертификате , но подключиться к хосту с Localhost , вы должны установить SSL_VERIFYCN_NAME => 'www.example.com «
  • В качестве альтернативы вы можете использовать SSL_FINGRINTPRINT , чтобы проверить только отпечаток сертификата и отключить любые другие проверки.
  • И, наконец, вы могли бы отключить какую-либо проверку с SSL_verify_Mode . Но это только обходной путь, и вы никогда не должны делать это в производственном кодексе, потому что это делает вас для атак для мужчин в средних.

Так как вы не можете установить SSL_OPTS напрямую с LWP-запрос , я рекомендую вместо вместо небольшого программы использовать, то есть что-то вроде этого:

  use LWP::UserAgent;
  my $ua = LWP::UserAgent->new( ssl_opts => { 
      SSL_ca_file => 'myca.pem',
      SSL_verifycn_name => 'www.example.com',
  });
  print $ua->get('https://...')->as_string;
1
28.01.2020, 02:51

Теги

Похожие вопросы