标签: io-socket-ssl

Perl LWP:为什么 IO::Socket::SSL 使用 TLS 1.0,而 Net::SSL 使用 TLS 1.2?

当我运行以下代码时:

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 连接,因此这是有道理的。

线鲨1

当我更改代码以指定客户端应使用 TLS 1.2 时,我得到了相同的响应。

my $ua = LWP::UserAgent->new(ssl_opts => {
    verify_hostname …
Run Code Online (Sandbox Code Playgroud)

perl ssl lwp io-socket-ssl

5
推荐指数
1
解决办法
9352
查看次数

标签 统计

io-socket-ssl ×1

lwp ×1

perl ×1

ssl ×1