Perl LWP::UserAgent SSL/TLS 不一致的证书错误消息问题

Perl LWP::UserAgent SSL/TLS Inconsistent Certificate Error Message Issue

我在 Ubuntu 和 CentOS 上的 LWP::UserAgent 似乎有一个奇怪的区别。

在 Ubuntu(14.04.1 和 LWP::UserAgent 6.05)上,如果我尝试连接到具有自签名证书的域,我会收到此错误消息和 500 错误代码:

"Can't connect to my.test-domain.com:443 (certificate verify failed)"

很好。我可以确切地看到问题所在 - 证书问题。但是在 CentOS 7 上(也有 LWP::UserAgent 6.05)我只是得到这个:

"Can't connect to my.test-domain.com:443".

信息量较少,因此给我带来了麻烦!有谁知道我如何在 CentOS 上启动 LWP 以获得 "certificate verify failed" 消息?这是我测试的脚本:

#!/usr/bin/perl -w
use strict;
use LWP::UserAgent;
my $url='https://my.test-domain.com/';
my $browser= LWP::UserAgent->new();
my $tryHEAD=$browser->head($url);
my $responseCode=$tryHEAD->code();
if($tryHEAD->code()==200  ) {    print "OK\n"; }
else {    print $tryHEAD->code().' '.$tryHEAD->message()."\n"; }

似乎与IO::Socket::IP的版本有关(IO::Socket::SSL自动使用)。如果没有 IO::Socket::IP 或版本 0.31(可能更高),它会按预期工作,而版本 0.25 (Ubuntu 14.04) 则不会。这可能与版本 0.30、0.31.

connect 的处理变化有关