Invalid or no certificate authority found, using bundled information

I'm getting started with the facebook API. I downloaded the example code from facebook, configured with my appID and secret keys.

<?php
   require '../src/facebook.php';

// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
  'appId'  => '...',
  'secret' => '....',
));

// Get User ID
$user = $facebook->getUser();

if ($user) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}

// Login or logout url will be needed depending on current user state.
if ($user) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  $loginUrl = $facebook->getLoginUrl();
}

// This call will always work since we are fetching public data.
$naitik = $facebook->api('/naitik');

?>

on localhost,the script work with no errors. But on host I getting the following error:

Invalid or no certificate authority found, using bundled information

the .crt file was uploaded with success

one may point out my error? thanks in advance.

Answers


Set the option in CURL to point to your certificate file

This option will tell CURL that your fb_ca_chain_bundle.crt file is in the same folder as your script.

Facebook::$CURL_OPTS[CURLOPT_CAINFO] = getcwd().'/fb_ca_chain_bundle.crt';

In base_facebook.php line 844 curl_exec fails and the error is generated. Then the script sets:

curl_setopt($ch, CURLOPT_CAINFO,
              dirname(__FILE__) . '/fb_ca_chain_bundle.crt');

and tries again.

The Second time all is well, there is no problem it just makes a mess of your log

DO NOT use

Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;

Or a man-in-middle will be able to intercept your call!


Disable the SSL security feature

Though I don't recognize that exact error message, SSL problems when communicating with Facebook via the PHP SDK (and thus Curl) are common. Have you tried doing something like this?

Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;

This will disable the SSL "Verify Peer" security feature so that it stops generating the error message.


get the latest plugin from http://wordpress.org/extend/plugins/facebook-feed-grabber/ and replace the old chain certificate with new one


I've checked the server config and everything seems fine. However I've seen a few other posts on the internet where users have fixed the issue by editing the following lines in

"base_facebook.php"

/** * Default options for curl. */

public static $CURL_OPTS = array(
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 60,
CURLOPT_USERAGENT => 'facebook-php-3.2',
CURLOPT_SSL_VERIFYPEER => false, (ADDED THIS LINE)
);

I've tested it and this now works, and it successfully posts to the Facebook page.

Cheers!

Mudassar Ali


Need Your Help

C#: How would you unit test GetHashCode?

c# unit-testing tdd gethashcode

Testing the Equals method is pretty much straight forward (as far as I know). But how on earth do you test the GetHashCode method?

Format TimeSpan greater than 24 hour

c# vb.net formatting timespan

Say I convert some seconds into the TimeSpan object like this: