当我运行以下代码时:
use strict;
use warnings;
use IO::Socket::SSL;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new(ssl_opts => {
verify_hostname => 0,
});
my $res = $ua->get('https://internal.foo.bar.baz:20002');
print $res->as_string;
Run Code Online (Sandbox Code Playgroud)
我从 LWP 收到内部错误:
500 Can't connect to internal.foo.bar.baz:20002 (Bad file descriptor)
Content-Type: text/plain
Client-Date: Fri, 29 Jun 2018 21:23:13 GMT
Client-Warning: Internal response
Can't connect to internal.foo.bar.baz:20002 (Bad file descriptor)
Bad file descriptor at D:/strawberry/perl/site/lib/LWP/Protocol/http.pm line 50.
Run Code Online (Sandbox Code Playgroud)
网络流量显示这是一个“客户端问候”,随后服务器立即重置,并且协议是 TLSv1。服务器仅允许 TLS 1.2 连接,因此这是有道理的。
当我更改代码以指定客户端仅应使用 TLS 1.2 时,我得到了相同的响应。
my $ua = LWP::UserAgent->new(ssl_opts => {
verify_hostname …Run Code Online (Sandbox Code Playgroud)