6

https 経由で 500 ハンドシェーカー エラー:443 を取得しています。私が 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 に答える