6

获取 500 握手错误:443 over 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 吗?

4

1 回答 1

9

通过 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;
于 2013-11-30T21:03:12.570 回答