Connecting Tech Pros Worldwide Help | Site Map

Request for help with fsockopen

Alex
Guest
 
Posts: n/a
#1: Jan 17 '07
Hi all,
I'm having a problem with fsockopen function, I'm programming with php
4.3 and need to do an HTTP POST over secure socket, ssl, here's my
code:

$context = stream_context_create();
$result = stream_context_set_option($context, 'ssl', 'local_cert',
"/certificate/cert.pem");
$result = stream_context_set_option($context, 'ssl', 'passphrase',
"passphrase");

$sock = fsockopen("ssl://myhost", 443 , $errno, $errstr, 30, $context);
if (!$sock) die("$errstr ($errno)\n");

I get this error when trying to run this code:
Warning: fsockopen(): Unable to set local cert chain file
`/certificate/cert.pem'; Check that your cafile/capath settings include
details of your certificate and its issuer in /path/to/file.php on line
xxx

Dunno what to do, I thought there's something wrong in my certificate
but couldn't find any real explanation on google or php site, If anyone
can help, it would be much appreciated.

Andy Hassall
Guest
 
Posts: n/a
#2: Jan 17 '07

re: Request for help with fsockopen


On 17 Jan 2007 08:21:06 -0800, "Alex" <dna.soldout@gmail.comwrote:
Quote:
>I'm having a problem with fsockopen function, I'm programming with php
>4.3 and need to do an HTTP POST over secure socket, ssl, here's my
>code:
>
>$context = stream_context_create();
>$result = stream_context_set_option($context, 'ssl', 'local_cert',
>"/certificate/cert.pem");
>$result = stream_context_set_option($context, 'ssl', 'passphrase',
>"passphrase");
>
>$sock = fsockopen("ssl://myhost", 443 , $errno, $errstr, 30, $context);
>if (!$sock) die("$errstr ($errno)\n");
>
>I get this error when trying to run this code:
>Warning: fsockopen(): Unable to set local cert chain file
>`/certificate/cert.pem'; Check that your cafile/capath settings include
>details of your certificate and its issuer in /path/to/file.php on line
>xxx
>
>Dunno what to do, I thought there's something wrong in my certificate
>but couldn't find any real explanation on google or php site, If anyone
>can help, it would be much appreciated.
Just to rule out the easy ones first: do you really have a /certificate
directory at the root directory of the filesystem of your server? Remember,
that parameter is not a relative URL.

There's a couple of hits on Google too, particularly one in a user note on the
SOAP part of the manual - is that any help?


http://www.google.co.uk/search?q=%22...th+settings%22

--
Andy Hassall :: andy@andyh.co.uk :: http://www.andyh.co.uk
http://www.andyhsoftware.co.uk/space :: disk and FTP usage analysis tool
Alex
Guest
 
Posts: n/a
#3: Jan 18 '07

re: Request for help with fsockopen


hi, thakyou for reply, here's what I discovered:

Quote:
Just to rule out the easy ones first: do you really have a /certificate
directory at the root directory of the filesystem of your server? Remember,
that parameter is not a relative URL.
No, I really don't have a /certificate at root, I was using absolute
path, but in reality it is a relative path and it does have the cert in
pem format.
Quote:
There's a couple of hits on Google too, particularly one in a user note on the
SOAP part of the manual - is that any help?
>
Unfortunately not, but I did find a resolution by adding these two
lines of code that add some option parameters to the stream:

$result = stream_context_set_option($context, 'ssl',
'allow_self_signed', true);
$result = stream_context_set_option($context, 'ssl', 'verify_peer',
false);

This way I should accept a certificate self_signed by CA and I don't
verify it. Kinda unsafe but works well.

Alex

Closed Thread