Perl/SOAP Lite certificate validation error

Version 1

    Subject: RE: Perl/SOAP Lite certificate validation error
    Replied by: David Staudt on 15-02-2012 11:57:11 AM
    Unfortunately I don't have the PERL background to provide any practical advice, but perhaps a clue: AXL is a secure (HTTPS/SSL) web service, and as such typically both the client and the server in the connection will expect to validate each other's SSL certificates.  Assuming this is not happening, there are two general approaches:
     
    - Download/install the AXL wervice's SSL cert into the client (how-to for PERL is beyond me)
    - Program the client in such a way that it ignores the failure to validate the AXL cert
     
    Some likely looking links:
     
    http://code.activestate.com/lists/activeperl/21645/
    http://stackoverflow.com/questions/6795030/how-to-ignore-certificate-verify-failed-error-in-perl
    This document was generated from CDN thread

    Created by: Erick Wellnitz on 15-02-2012 11:44:50 AM
    When i try to run my script I get the following error.
     
    LWP:rotocol::https::Socket: SSL connect attempt failed with unknown errorerror
    :14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed at
    C:/Program Files/Cisco/Perl/lib/LWP/Protocol/http.pm line 51.
    500 Can't connect to xxx.xxx.xxx.xxx:8443 (certificate verify failed) at xxx\TestAXL.pl line 27
     
    I'm fairly new to Perl so any help is appreciated in figuring this out.  Code is below.
     
    #!/Program Files/Cisco/perl -w
    use strict;
    use warnings;
    use SOAP::Lite +trace => 'debug';
    use Data:umper;
    use MIME::Base64;
    my $cucmip = "xxx.xxx.xxx.xxx";
    my $axl_port = "8443";
    my $user = "xxxx";
    my $password = "xxxx";
    my $DEBUG = 1;
    my $error_text;
    my $sql = "select description from device where name = 'SEP000000123456'";
    my $cm = new SOAP::Lite
    encodingStyle => '',
    uri => 'http://www.cisco.com/AXL/API/1.0',
    proxy => "https://$cucmip:$axl_port/axl/" ;
    $cm = Login($cm,$user,$password);
    #axl request
    my $axldata = SOAP:ata->name( "sql" => $sql );

    my $res = $cm->executeSQLQuery( $axldata );
    unless ($res->fault)
    {
     $Data:umper::Indent = 3;
     print Dumper($res->paramsall()) if ( $DEBUG==1);
    }
    else
    {
     $error_text = $res->faultcode.' '.$res->faultstring."\n";
     print $error_text
    }
    ################################################
    sub Login
    {
     $cm->transport->http_request->header (
     'Authorization' => 'Basic ' . encode_base64("$user:$password", ''));
     return $cm;
    }

    Subject: RE: Perl/SOAP Lite certificate validation error
    Replied by: Erick Wellnitz on 15-02-2012 12:26:43 PM
    The line from the ActiveState url did it.

    BEGIN { $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0 }

    Talk about the answer being right under my nose the entire time.

    Thanks!