Проблема вызова REST (в частности, порт 443) из CRON - PullRequest
0 голосов
/ 04 января 2019

У меня возникла самая серьезная проблема при попытке выполнить вызов REST из скрипта cron.

Мой скрипт отлично работает как пользователь root в терминале, но когда я настраиваю его из корневого CRON, я получаю следующую ошибку:

$VAR1 = 'Can\'t connect to 172.16.250.159:443 (certificate verify failed)

LWP::Protocol::https::Socket: SSL connect attempt failed with unknown error error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed at /opt/algosec/perl5/lib/perl5/LWP/Protocol/http.pm line 51.
';

Мой хрон выглядит так:

*/5 * * * * /usr/share/fireflow/local/etc/site/lib/pending_ritm_kickoff_script.pl

Мой Perl-скрипт запускает следующее:

   my $client = REST::Client->new({
     hostname => ''
   });
   my $response = '';
   $client->addHeader('Content-Type', 'application/json');
   my %rec_hash = (
     'username' => $username,
     'password' => $password,
   );
   my $json_body = encode_json(\%rec_hash);
   $client->POST("$endpoint/APP1/api/authentication/authenticate", "$json_body");
   open(my $fh, '>', '/tmp/cron_report_1.txt');
   print $fh Dumper($client->responseContent());
   close $fh;

   $response = decode_json($client->responseContent());

client-> responseContent возвращает ошибку ssl. Но скрипт отлично работает с терминала! Любая помощь очень ценится.

1 Ответ

0 голосов
/ 04 января 2019

В итоге было решено добавить переменную Environment в Perl Script, игнорируя проверку SSL:

$ ENV {PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...