简体   繁体   中英

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.

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.

http://wordpress.org/extend/plugins/facebook-feed-grabber/获取最新插件,并用新的链替换旧链证书

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM