#!/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
如何解决?
答案 0 :(得分:5)
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版本。