【问题标题】:How to fix SSL error in Perl LWP?如何修复 Perl LWP 中的 SSL 错误?
【发布时间】:2018-01-15 01:39:33
【问题描述】:
#!/usr/bin/perl
use strict;
use warnings;

use LWP::UserAgent;

my $ua = LWP::UserAgent->new(
    agent => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/603.2.4 (KHTML, like Gecko) Version/10.1.1 Safari/603.2.4',
    ssl_opts => { verify_hostname => 0 }
);

my $response = $ua->get('https://www.themoviedb.org');

给出错误信息:

无法连接到 www.themoviedb.org:443

SSL 连接尝试失败错误:14077410:SSL 例程:SSL23_GET_SERVER_HELLO:sslv3 警报握手失败 /Library/Perl/5.18/LWP/Protocol/http.pm 第 46 行。

我使用 macOS Sierra

LWP->VERSION                            6.26
IO::Socket::SSL->VERSION                2.049
Net::SSLeay->VERSION                    1.72
Net::SSLeay::OPENSSL_VERSION_NUMBER()   0x009081df
LWP::UserAgent->VERSION                 6.26
LWP::Protocol::https->VERSION           6.04

如何解决?

【问题讨论】:

    标签: perl ssl lwp


    【解决方案1】:

    Net::SSLeay::OPENSSL_VERSION_NUMBER() 0x009081df

    这是 OpenSSL 0.9.8,至少有 7 年的历史,不支持 TLS 1.1 和 TLS 1.2,也不支持任何 ECDHE 密码。此外,对于这个旧版本的 OpenSSL,IO::Socket::SSL 中不支持 SNI

    看看SSLLabs report for www.themoviedb.org你会看到:

    此站点仅适用于支持 SNI 的浏览器。

    因此,您需要升级您的 OpenSSL 版本。请注意,之后您还需要重新编译 Net::SSLeay 并将其链接到较新的 OpenSSL 版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-28
      • 1970-01-01
      • 1970-01-01
      • 2018-11-25
      相关资源
      最近更新 更多