Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

LWP & HTTPS Problem - PARENT_NEEDED

by dsb (Chaplain)
on May 16, 2007 at 15:37 UTC ( [id://615812]=perlquestion: print w/replies, xml ) Need Help??

dsb has asked for the wisdom of the Perl Monks concerning the following question:

Hi everybody, I'm currently using LWP to try and connect to an XML page via SSL. I do have to go through a proxy for name resolution since I'm connecting from a closed network. I get this response:
HTTP/1.1 500 Server Error Connection: close Date: Wed, 16 May 2007 15:23:37 GMT Server: NetCache appliance (NetApp/5.6.1D25DEBUG3) Content-Length: 284 Content-Type: text/html Client-Date: Wed, 16 May 2007 15:23:38 GMT Client-Peer: 171.182.207.166:8080 Client-Response-Num: 1 Title: 500 Server Error <HTML> <HEAD><TITLE>500 Server Error</TITLE></HEAD> <BODY> <H1>Server Error</H1> <H4> The following error occurred:<P> [code=PARENT_NEEDED] Unable to service this URL without parent cache.C +ontact your system administrator. </H4> <HR> Please contact the administrator. </BODY> </HTML>
Information on how to resolve this, especially regarding Perl, is scarce.

I'm using Perl 5.8.8, on a Solaris 10 system, and as far as I know, all the necessary packages for SSL support (Crypt::SSLeay and OpenSSL) are installed.

The code (cleansed of real world information):

use strict; use LWP; my $ua = LWP::UserAgent->new(); $ua->proxy(['http', 'https'], 'http://proxy:8080'); my $req = HTTP::Request->new(GET => 'http://www.sslsite.com'); my $res = $ua->request($req); my $content = $res->as_string;
I've tested the functionality of the proxy hitting yahoo.com so I know I can reach the web, so I'm guessing there IS an issue with the SSL Setup, i just don't know what to check.

Any help is much appreciated.

UPDATE:
After poking around some in the Crypt::SSLeay docs, I found that the proxy information needs to be provided through environment variables rather than to the UserAgent object as it is in my original code. So:

$ENV{HTTPS_PROXY} = 'http://proxy'; $ENV{HTTPS_PROXY_USERNAME} = 'user'; $ENV{HTTPS_PROXY_PASSWORD} = 'pass';
Took care of everything.


dsb
This @ISA my( $cool ) %SIG

Replies are listed 'Best First'.
Re: LWP & HTTPS Problem - PARENT_NEEDED
by jhourcle (Prior) on May 16, 2007 at 16:37 UTC
    The following error occurred:<P> [code=PARENT_NEEDED] Unable to service this URL without parent cache.C +ontact your system administor

    So, what did your system administrator say?

    Hopefully, they would've told you that you should use an HTTPS proxy for SSL, as to proxy HTTPS using HTTP would create a security risk.

Re: LWP & HTTPS Problem - PARENT_NEEDED
by Krambambuli (Curate) on May 16, 2007 at 16:37 UTC
    Possibly just the way you're trying to get to the site ? Did you try to prefix the URLs you're using (for proxy as for final destination) with 'https://' instead of 'http://' ?
      use Net::SSL (); # From Crypt-SSLeay use LWP::UserAgent; $Net::HTTPS::SSL_SOCKET_CLASS = "Net::SSL"; # Force use of Net::SSL $ENV{HTTPS_PROXY} = 'http://98.142.214.160:443'; $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0; my $ua = LWP::UserAgent->new(); my $req = HTTP::Request->new('GET','https://twitter.com'); my $res = $ua->request($req); print $res->status_line;

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://615812]
Approved by kyle
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (6)
As of 2024-03-28 08:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found