アプリケーションを PHP/cURL から Perl および LWP::UserAgent に移植しています。Web サーバーに対して POST 要求を実行し、クライアント証明書とキー ファイルを提供する必要があります。複製しようとしている PHP コードは次のとおりです。
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSLCERT, "/path/to/certificate.pem");
curl_setopt($ch, CURLOPT_SSLKEY, "/path/to/private.key");
curl_setopt($ch, CURLOPT_SSLKEYPASSWD, "secretpassword");
そして、ここに私のPerlコードがあります:
my $ua = LWP::UserAgent->new();
$ua->ssl_opts(
SSL_verify_mode => 0,
SSL_cert_file => '/path/to/certificate.pem',
SSL_key_file => "/path/to/private.key",
SSL_passwd_cb => sub { return "secretpassword"; }
);
PHP コードはサーバーに正常に接続しますが、Perl コードは次のエラーで失敗します。
SSL 読み取りエラー エラー:14094410:SSL ルーチン:SSL3_READ_BYTES:sslv3 アラート ハンドシェイクの失敗
何が欠けているのかわかりません。