Request for help with fsockopen

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Alex

    Request for help with fsockopen

    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($con text, 'ssl', 'local_cert',
    "/certificate/cert.pem");
    $result = stream_context_ set_option($con text, '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

    #2
    Re: Request for help with fsockopen

    On 17 Jan 2007 08:21:06 -0800, "Alex" <dna.soldout@gm ail.comwrote:
    >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($con text, 'ssl', 'local_cert',
    >"/certificate/cert.pem");
    >$result = stream_context_ set_option($con text, '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?




    --
    Andy Hassall :: andy@andyh.co.u k :: http://www.andyh.co.uk
    http://www.andyhsoftware.co.uk/space :: disk and FTP usage analysis tool

    Comment

    • Alex

      #3
      Re: Request for help with fsockopen

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

      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.
      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($con text, 'ssl',
      'allow_self_sig ned', true);
      $result = stream_context_ set_option($con text, '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

      Comment

      Working...