首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使Frontier::Client / LWP停止验证CGI::应用程序web应用程序中的SSL证书?

如何使Frontier::Client / LWP停止验证CGI::应用程序web应用程序中的SSL证书?
EN

Stack Overflow用户
提问于 2016-05-16 23:42:43
回答 2查看 522关注 0票数 0

在开发和测试环境中,我们为XMLRPC web服务使用了自签名SSL证书。生产使用一个良好的第三方证书和证书验证工作很好,没有问题。

在调用应用程序的代码( CGI::Application web应用程序)中,我们跳过了只在dev和测试环境中验证SSL证书的过程,因为我们知道它会并且应该失败.或者跳过它。尽管将$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME}设置为0,但调用仍然失败:

代码语言:javascript
复制
Error executing run mode 'myRunMode': 500 Can't connect to mydomain.com:443 (certificate verify failed)

还有一群人(现在可能已经被反对了?)env变量已经被尝试过了,我们似乎无法在web应用程序中绕过这个错误。在命令行,我们可以成功地调用一个忽略所有相同代码的cert验证的调用,并且我们已经比较了所使用的所有Perl模块的版本(例如,在这两种情况下,LWP为6.15 )。

在线讨论指出了不同的场景(取决于所使用的SSL后端),因此我们尝试安装LWP::Protocol::https,至少有不同的行为。只是在模块安装之后,我们就开始失败了:

代码语言:javascript
复制
Error executing run mode 'myRunMode': 404 Not Found

404看起来像是一条红鲱鱼,但是遗憾的是,删除了LWP::Protocal::https使我们回到了“证书验证失败”错误,因此我们似乎在做一些事情。

对于如何在这个CGI::应用程序环境中跳过证书验证,有人有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2017-04-03 14:09:14

这是个老生常谈,但我还是想分享我的解决方案。只需在执行边界调用之前添加以下内容:

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

没必要改变边境密码之类的..。

票数 2
EN

Stack Overflow用户

发布于 2016-05-17 02:45:12

hostname => 0);

--更新5/17/16 330 16

如果您可以编辑Frontier::Client (或者只是复制-粘贴它并给它一个不同的包/文件名),您可以将LWP::UserAgent的用法替换为WWW::Curl::Easy,这是我对SSL的选择(我有使用带有bug的库的LWP的旧版本)。以下是卷曲代码:

代码语言:javascript
复制
my ($rBody,$rHead); # response written here
my $curl = WWW::Curl::Easy->new();
$curl->setopt(CURLOPT_URL, $url);
$curl->setopt(CURLOPT_HEADER, 0);
$curl->setopt(CURLOPT_POST, 1);
$curl->setopt(CURLOPT_POSTFIELDS,  $myRequest);
$curl->setopt(CURLOPT_HTTPHEADER,  \@myHeaders);
$curl->setopt(CURLOPT_WRITEDATA,   \$rBody);
$curl->setopt(CURLOPT_WRITEHEADER, \$rHead);
$curl->setopt(CURLOPT_FOLLOWLOCATION, 1);
$curl->setopt(CURLOPT_SSL_VERIFYHOST, 0);
$curl->setopt(CURLOPT_SSL_VERIFYPEER, 0);
my $cc = $curl->perform();

您甚至可以使用HTTP::Response->解析($rHeadRegexed)。$rBody),以获得LWP::UserAgent->request(等)返回的相同对象;

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

https://stackoverflow.com/questions/37264884

复制
相关文章

相似问题

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