2012-01-25 3 views
2

원격 서버에 XML 데이터 POST를 수행하기 위해 LWP :: UserAgent를 사용하고 있습니다. 원격 URL은 https이며 내 서버에 설치하려면 .crt 파일을 보냈습니다.보안 서버에 XML을 게시하는 LWP :: UserAgent ... 인증서 문제

An Error Occurred

500 Can't connect to previewtest.clverify.com:443 (certificate verify failed) 500 Can't connect to previewtest.clverify.com:443 (certificate verify failed) Content-Type: text/plain Client-Date: Wed, 25 Jan 2012 05:11:24 GMT Client-Warning: Internal response Can't connect to previewtest.clverify.com:443 (certificate verify failed) LWP::Protocol::https::Socket: SSL connect attempt failed with unknown errorerror:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed at /usr/lib/perl5/site_perl/5.8.8/LWP/Protocol/http.pm line 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에있는 가정 해 봅시다 : 여기

는 코드입니다.

서버를 호출 할 때 내 인증서를 확인하려면 어떻게 설정해야합니까?

+0

등의 추가 정보를 원하시면, 우리는 연결중인 타사 공급 업체 나를 2 개가 .crt 파일을 보냈습니다. CPanel을 사용하여 서버에 설치했습니다. –

+0

몇 가지 샘플 Perl 코드가 도움이 될 것입니다. –

+0

죄송합니다 ... 그냥 질문을 편집하고 일부 코드를 게시했습니다. –

답변

1

첫째,이 my $browser 라인을 변경하려고 것 : DigiCertCA.crt 및 TrustedRoot.crt :

my $browser = LWP::UserAgent->new(
    agent => 'perl post', 
    ssl_opts => { 
    verify_hostname => 1, 
    SSL_ca_path => '/usr/bin/some_dir', 
    }, 
); 
+0

의견을 보내 주셔서 감사합니다. :) –

+0

OK ... 변경 사항이 적용되지 않았습니다. 현재 실행중인 코드는 다음과 같습니다. my $browser = LWP::UserAgent->new(agent => 'perl post', \t \t ssl_opts => { \t \t verify_hostname => 1, \t \t SSL_ca_path => '/home/site/ssl/certs/', \t \t },); \t $browser->credentials('netaddr:port','realm','username'=>'password'); \t $response = $browser->request(POST 'fullURL', \t \t Content_Type => 'text/xml', \t \t Content => $sendXML); }

관련 문제