获得500个握手错误:443超过https.我发送
XML的主机服务不支持TLS 1.2,它们支持1.0和1.1.目前在CentOS 6上使用LWP 6.03.使用下面的代码,他们声称我仍在使用TLS1.2发送
use LWP::UserAgent; $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 0,SSL_version => 'SSLv23:!TLSv12' }); $req = HTTP::Request->new(GET => 'https://secure-host-server'); $res = $ua->request($req); if ($res->is_success) { print $res->content; } else { print "Error: " . $res->status_line . "\n"; }
是否可以在发送给主机时打印TLS版本?我能做些什么来验证我使用的是TLS1.1?
解决方法
通过LWP :: UserAgent设置SSL_version不起作用.我尝试了无数方法试图让我的代码通过TLSv1发送XML而没有运气,下面的代码就可以了.
use Net::SSLglue::LWP; use IO::Socket::SSL; my $context = new IO::Socket::SSL::SSL_Context( SSL_version => 'tlsv1',SSL_verify_mode => Net::SSLeay::VERIFY_NONE(),); IO::Socket::SSL::set_default_context($context); use LWP::UserAgent; use HTTP::Request::Common;