首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >升级LWP“证书验证失败”后脚本中断

升级LWP“证书验证失败”后脚本中断
EN

Stack Overflow用户
提问于 2012-11-15 03:24:29
回答 2查看 24K关注 0票数 21

我有很多脚本,其中大多数都是基于WWW::Mechanize的,这些脚本从可以通过HTTPs访问的杂项硬件中抓取数据。在升级了我的大部分perl安装及其模块之后,由于"certificate verify failed",所有脚本都使用了HTTPS:// broke

这是因为较新版本的LWP会对证书和dies进行适当的检查,如果某些内容不匹配。

在我的例子中,由于环境的原因,失败的证书身份验证是意料之中的,所以我需要找到一种干净的方法来绕过这个检查。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-15 03:24:29

我在代码前面加上了:

代码语言:javascript
复制
$ENV{'PERL_LWP_SSL_VERIFY_HOSTNAME'} = 0;

这导致脚本以一种干净而简单的方式绕过检查。

票数 7
EN

Stack Overflow用户

发布于 2015-01-10 04:48:24

@ikegami很好地解释了为什么你不想禁用SSL主机名验证,但没有直接提到如何避免它。

如果您正在与具有CA签名证书的公共系统对话,则需要将LWP指向您的发行版的根证书集合。在基于Debian的系统(Ubuntu,等等)下,它被保存在/etc/ssl/certs/下。

代码语言:javascript
复制
BEGIN {
    $ENV{HTTPS_CA_DIR} = '/etc/ssl/certs'
}

如果您使用自签名证书与自己的服务器通信,则可以在客户端上保存该证书的副本,并将脚本指向该特定文件。

代码语言:javascript
复制
BEGIN {
    $ENV{HTTPS_CA_FILE} = '/path/to/my/server-certificate.crt'
}

相反,您可以在运行脚本之前在环境中设置这些设置(例如,从shell中导出它们),或者可以将这些设置直接应用于UserAgent对象。有关更多详细信息,请参阅LWP::UserAgent documentation;搜索ssl_opts (大约在页面的一半位置)。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13385846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档