我正在使用 LWP::UserAgent 将 XML 数据 POST 到远程服务器。远程 URL 是 https,他们向我发送了一个 .crt 文件以安装在我的服务器上。
当我尝试连接到他们的服务器时,我收到以下消息:
发生错误
500 无法连接到 previewtest.clverify.com:443(证书验证失败) 500 无法连接到 previewtest.clverify.com:443(证书验证失败) 内容类型:文本/纯文本客户端日期:星期三,25 2012 年 1 月 05:11:24 GMT 客户端警告:内部响应无法连接到 previewtest.clverify.com:443(证书验证失败) LWP::Protocol::https::Socket: SSL 连接尝试失败,出现未知错误错误: 14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证在 /usr/lib/perl5/site_perl/5.8.8/LWP/Protocol/http.pm 第 51 行失败。
如何正确引用我服务器上的 SSL 证书并将其发送给他们?
这是代码:
sub ConsumerInfo {
my $cid = shift;
my $response = undef;
my $sendXML = &Create_ConsumerInfo_Request($cid);
if ($sendXML) {
&DoXMLUpload($sendXML);
my $browser = LWP::UserAgent->new(agent => 'perl post');
$browser->credentials('sumURL:443','sumRealm','sumUserID'=>'sumPassword');
$response = $browser->request(POST 'sumFullURL',
Content_Type => 'text/xml',
Content => $sendXML);
print "Content-type:text/html\n\n";
print $response->error_as_HTML unless $response->is_success;
print $response->as_string;
} else {
&ErrorMsg("No XML Code Was Found.");
exit;
}
# ===============================================================
# Need to insert parser in here to convert this into an array.
# ===============================================================
return $response;
}
现在...假设发送给我的证书位于/usr/bin/some_dir/DigiCertCA.crt。
如何设置它以在调用服务器时检查我的证书?