Мы используем Nagios для мониторинга некоторых наших веб-сайтов. У нас есть скрипт, который использует старый плагин, на который мы пытаемся переключиться, используя webinject.pl из cpan. Когда скрипт запускается, он генерирует такую ошибку:
LWP::Protocol::https::Socket: SSL connect attempt failed with unknown error error:1407741A:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert decode error at /usr/local/share/perl5/LWP/Protocol/http.pm line 51.
Похоже, что веб-сайт не поддерживает TLSv1 для https. Если это имеет значение, сайт является Cisco WebVPN. Я указал тот же сценарий на другой сайт, который поддерживает TLSv1, и, похоже, он работает нормально.
Мой веб-поиск оказывается пустым. Успешное подключение:
<case
id="1"
description1="Metro Home Page"
description2="Metro, login test"
method="get"
url="https://metro.myco.com/index.php"
verifypositive="restricted"
logrequest="yes"
logresponse="yes"
sleep="1"
/>
Ошибка подключения:
<case
id="2"
description1="WebVPN Home Page"
description2="webvpn.myco.com login test"
method="get"
url="https://webvpn.myco.com/webvpn.html"
verifypositive="Authorized"
logrequest="yes"
logresponse="yes"
sleep="1"
/>
Я поработал над этим и получил частичное исправление, которое мне не нравится. Я добавил строку в код в sub _get_useragent
$useragent->ssl_opts( SSL_version => 'SSLv3' );
что заставляет SSLv3. Это позволит плагину подключиться к Этому сайту. Скорее всего, я скопирую плагин, чтобы он относился к этому сайту. Но лучшим решением было бы добавить параметр в тестовый пример.