ОК ... посмотрим, станет ли это понятнее.
Я делаю POST XML-документа через LWP :: UserAgent на удаленный сторонний сервер.
Ранее они прислали мне свои файлы .crt, которые я установил на своем сервере, и проверили их адрес и тот факт, что они существуют, через CPanel и через командную строку Putty для «вызовов». Сертификаты есть.
Я гарантировал, что у меня установлены LWP :: Protocol :: https и все другие необходимые моды Perl, включая Mozilla :: CA, Crypt :: SSLeay и другие.
Когда я запускаю скрипт, я получаю следующую ошибку:
Произошла ошибка
500 Не удается подключиться к порту shortURL: порт (сертификат подтвержден
не удалось) 500 Не удается подключиться к shortURL: порт (сертификат
проверка не удалась) Content-Type: text / plain Клиент-дата: ср, 25 января 2012
17:53:36 GMT Client-Warning: Внутренний ответ не может подключиться к
shortURL: порт (сбой проверки сертификата)
LWP :: Protocol :: https :: Socket: попытка SSL-соединения не удалась с неизвестным
errorerror: 14090086: SSL
подпрограммы: SSL3_GET_SERVER_CERTIFICATE: сбой проверки сертификата в
/usr/lib/perl5/site_perl/5.8.8/LWP/Protocol/http.pm строка 51.
Вот код вызова:
sub ConsumerInfo {
my $cid = shift;
my $response = undef;
my $sendXML = &Create_ConsumerInfo_Request($cid);
if ($sendXML) {
&DoXMLUpload($sendXML);
my $browser = LWP::UserAgent->new(agent => 'site_perl',
ssl_opts => {
verify_hostname => 1,
SSL_ca_path => '/home/<mysite>/ssl/certs/',
},);
$browser->credentials('shortURL:port','realm','username'=>'password');
$response = $browser->request(POST 'longURL',
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;
}
Есть мысли? У меня заканчиваются идеи здесь. (