Soap perl 和 ssl 证书已更改
Soap perl and ssl certificate changed
我有一个通过 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 into browser works fine. Entering http://machine(机器在本地网络上)有效。
编辑 1:
perl -MIO::Socket::SSL=debug4 yourscript.pl 和 analyze-ssl.pl 来自 p5-ssl-工具 显示错误消息 1416F086,它引导我了解 SSL 证书具有 "Chain issues" 必须在证书安装中修复的信息。
编辑 2:
证书修复后错误消失!完美,解决!
这是 Corion 和 Steffen Ullrich 评论中提到的解决方案:
运行 或者:
- https://github.com/noxxi/p5-ssl-tools脚本分析-ssl.pl
- perl -MIO::Socket::SSL=debug4 yourscript.pl
显示相同的错误:SSL 连接尝试失败error:1416F086:SSL routines:tls_process_server_certificate:certificate 验证失败。这指向我: 我发现我也有 "Chain issues Incomplete"。
修复证书后错误消失。
我有一个通过 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 into browser works fine. Entering http://machine(机器在本地网络上)有效。
编辑 1:
perl -MIO::Socket::SSL=debug4 yourscript.pl 和 analyze-ssl.pl 来自 p5-ssl-工具 显示错误消息 1416F086,它引导我了解 SSL 证书具有 "Chain issues" 必须在证书安装中修复的信息。
编辑 2:
证书修复后错误消失!完美,解决!
这是 Corion 和 Steffen Ullrich 评论中提到的解决方案:
运行 或者:
- https://github.com/noxxi/p5-ssl-tools脚本分析-ssl.pl
- perl -MIO::Socket::SSL=debug4 yourscript.pl
显示相同的错误:SSL 连接尝试失败error:1416F086:SSL routines:tls_process_server_certificate:certificate 验证失败。这指向我:
修复证书后错误消失。