【问题标题】:Soap perl and ssl certificate changed肥皂 perl 和 ssl 证书已更改
【发布时间】:2019-06-22 15:13:34
【问题描述】:

我有一个通过 SOAP::Lite 发送 SOAP 请求的 perl 代码,如下所示:

eval 
{
  $sresp = SOAP::Lite
    ->uri('http://machine/key')
    ->proxy('https://usr:pwd@website.com/addr/addr/remotescript.pl')
    ->remotescript_pl_function(@parms, $gmtime);
};
if ($@)
{
  print $@;
}

在 *.website.com 的现有证书被替换后,我不再收到有效的回复,我收到了

500 Can\'t connect to website.com:443 at localscript.pl line 123.

如果我启用

$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;

一切正常。但我想验证 SSL 主机名,我该怎么做,或追查问题? (我对这个代理有点迷茫)。

我有一个带有 libcurl 的 c++ 代码,它遵循相同的路线并且运行良好。在浏览器中输入https://website.com 可以正常工作。输入http://machine(机器在本地网络上)有效。

编辑 1:

perl -MIO::Socket::SSL=debug4 yourscript.planalyze-ssl.pl from p5-ssl-tools 都显示错误消息 1416F086,它会导致我知道 SSL 证书存在必须在证书安装中修复的“链问题”。

编辑 2:

修复证书后错误消失了!完美,解决了!

【问题讨论】:

  • 您检查过Mozilla::CA 在您的机器上是最新的吗?您是否验证了远程端的证书实际上是一个有效的证书(例如通过使用 Web 浏览器连接到远程端点)?
  • 将 Mozilla::CA 更新到最新的 20180117,结果是一样的。请问如何形成 Web 浏览器 url 以连接到远程端点?如果我在浏览器中输入usr:pwd@website.com,则显示该证书有效。
  • 我会检查 Perl 对使用 p5-ssl-tools 的证书的看法,尤其是 analyze-ssl.pl
  • 请使用perl -MIO::Socket::SSL=debug4 yourscript.pl 运行您的脚本,以便更详细地向您展示它所面临的 SSL 问题。将它的输出添加到您的问题中。
  • 谢谢你们,两种方法都返回相同的错误:SSL 连接尝试失败错误:1416F086:SSL 例程:tls_process_server_certificate:certificate verify failed 这指向:stackoverflow.com/questions/49308744/… 我发现我也有“链问题不完整”。所以我们必须在我们的服务器上修复证书。

标签: perl ssl soap soaplite


【解决方案1】:

这是 CorionSteffen Ullrich 在 cmets 中提到的解决方案:

运行:

  1. https://github.com/noxxi/p5-ssl-tools 脚本 analyze-ssl.pl
  2. perl -MIO::Socket::SSL=debug4 yourscript.pl

显示相同的错误:SSL 连接尝试失败错误:1416F086:SSL 例程:tls_process_server_certificate:certificate verify failed。这指向:telegram bot SSL error: SSL error {error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed} 我发现我也有“链问题不完整”。

修复证书后,错误消失了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    • 2011-01-14
    相关资源
    最近更新 更多