Perl代码段一直在验证服务器证书,尽管有人要求它不要这样做

Perl代码段一直在验证服务器证书,尽管有人要求它不要这样做,perl,Perl,我得到了以下代码,我认为它不会验证服务器证书,但它仍然会: 500 Can't connect to 10.0.0.9:443 (certificate verify failed) 不知道为什么。以下是代码片段: use LWP::UserAgent; my $ua = LWP::UserAgent->new; $ENV{'PERL_LWP_SSL_VERIFY_HOSTNAME'} = 0; my $req = HTTP::Request->new(POST => 'ht

我得到了以下代码,我认为它不会验证服务器证书,但它仍然会:

500 Can't connect to 10.0.0.9:443 (certificate verify failed)
不知道为什么。以下是代码片段:

use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
$ENV{'PERL_LWP_SSL_VERIFY_HOSTNAME'} = 0;
my $req = HTTP::Request->new(POST => 'https://10.0.0.9/test1234');
$ua->ssl_opts( verify_hostnames => 0 );
my $res = $ua->request($req);

# Check the outcome of the response
if ($res->is_success) {
    print $res->content;
}
else {
    print $res->status_line, "\n";
}

有什么想法吗?谢谢


事实证明,“验证主机名”应该是“验证主机名”。

除此之外,根据LWP的安装版本
验证主机名
只关心根据证书中的名称验证主机名,而不禁用信任链验证。您可以在股票LWP中找到后一种行为,但几乎所有Linux发行版都因为以下原因进行了修补。无论如何,禁用验证是不好的,请使用IO::Socket::SSL中的SSL_指纹来设置所需的证书以使其安全。感谢@SteffenUllrich提供更多信息!