我正在将应用程序从 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 警报握手失败
我无法弄清楚我错过了什么。