![Check_webinject 插件无法使用以下方式连接到 https 站点](https://linux22.com/image/588442/Check_webinject%20%E6%8F%92%E4%BB%B6%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%E4%BB%A5%E4%B8%8B%E6%96%B9%E5%BC%8F%E8%BF%9E%E6%8E%A5%E5%88%B0%20https%20%E7%AB%99%E7%82%B9.png)
我们正在使用 Nagios 来监控我们的一些网站。我们有一个使用旧插件的脚本,我们正尝试使用 cpan 中的 webinject.pl 切换到该插件。当脚本运行时,它会生成此错误:
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.
该网站似乎不支持 https 的 TLSv1。如果这很重要,则该网站是 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"
/>
答案1
我对此做了更多工作,并找到了一个我不太喜欢的部分修复。我在 sub _get_useragent 的代码中添加了一行
$useragent->ssl_opts( SSL_version => 'SSLv3' );
强制使用 SSLv3。这将允许插件连接到此站点。我可能会复制插件,使其特定于此站点。但更好的解决方案是向测试用例添加一个选项。