我无法使以下代码正常工作并且遇到困难。我正在尝试在 POST 请求期间使用证书执行客户端身份验证。我只对将客户端证书发送到服务器感兴趣,并不需要检查服务器证书。
这是尝试复制的 cUrl 命令:
curl --cacert caCertificate.pem --cert clientCertificate.pem -d "string" https://xx.xx.xx.xx:8443/postRf
我的 Perl 脚本中不断出现以下错误: ssl handshake failure
我猜我有两个问题:对于 CRT7 和 KEY8 变量,我应该指向什么?这是使用客户端证书身份验证发送 POST 请求的最佳方式吗?
!/usr/bin/perl
use warnings;
use strict;
use Net::SSLeay qw(post_https);
my $$hostIp = "xx.xx.xx.xx"
my $hostPort = "8443"
my $postCommand = "/postRf/string";
my $http_method = 'plain/text';
my $path_to_crt7 = 'pathToCert.pem';
my $path_to_key8 = 'pathToKey.pem';
my ($page, $response, %reply_headers) =
post_https($hostIp, $hostPort, $postCommand, '',
$http_method, $path_to_crt7, $path_to_key8
);
print $page . "\n";
print $response . "\n";