如何解决cURL错误60:在Facebook身份验证时,Laravel 5中的SSL证书

时间:2015-06-22 08:07:21

标签: php facebook ssl curl laravel-5

目前,我正在laravel5上做一个项目。

我使用socialize进行Facebook身份验证,但我在下面提到了cURL错误。

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    self.backgroundImageView.contentMode = UIViewContentModeCenter;
    self.backgroundImageView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"connect"]];
    [self addParallaxEffectToView:self.backgroundImageView];
}

- (void)addParallaxEffectToView:(UIView *)view
{
    // Set vertical effect
    UIInterpolatingMotionEffect *verticalMotionEffect =
    [[UIInterpolatingMotionEffect alloc]
     initWithKeyPath:@"center.y"
     type:UIInterpolatingMotionEffectTypeTiltAlongVerticalAxis];
    verticalMotionEffect.minimumRelativeValue = @(-50);
    verticalMotionEffect.maximumRelativeValue = @(50);

    // Set horizontal effect
    UIInterpolatingMotionEffect *horizontalMotionEffect =
    [[UIInterpolatingMotionEffect alloc]
     initWithKeyPath:@"center.x"
     type:UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis];
    horizontalMotionEffect.minimumRelativeValue = @(-50);
    horizontalMotionEffect.maximumRelativeValue = @(50);

    // Create group to combine both
    UIMotionEffectGroup *group = [UIMotionEffectGroup new];
    group.motionEffects = @[horizontalMotionEffect, verticalMotionEffect];

    // Add both effects to your view
    [view addMotionEffect:group];
}

我在互联网上搜索并完成了以下更改,但没有帮助

  • 已下载cart.pem文件
  • 设置路径" curl.cainfo =" C:\ xampp \ cacert.pem"
  • 也取消注释" extension = php_curl.dll"

我在控制器中的代码

 RequestException in CurlFactory.php line 162:
cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

6 个答案:

答案 0 :(得分:19)

https://laracasts.com/discuss/channels/general-discussion/curl-error-60-ssl-certificate-problem-unable-to-get-local-issuer-certificate

https://laracasts.com/discuss/channels/general-discussion/curl-error-60-ssl-certificate-problem-unable-to-get-local-issuer-certificate/replies/52954

  

我只花了几个小时来解决这个问题。正确的答案是

     

“确实要把cacert.pem文件和修改的php.ini文件修改为匹配Moez上面的建议。但是我继续得到CURL错误60's诀窍是获得干净的副本PEM文件!任何涉及Windows记事本或其他编辑器的方法都会破坏文件并给出cURL错误60等等。最后我找到了https://gist.github.com/VersatilityWerks/5719158/download并下载了一个带有cacert.pem文件干净副本的tar文件...... ......然后一切都很完美。“

由于你正在使用Windows,这可能就是问题所在。

答案 1 :(得分:10)

在使用Laravel的本地主机上,您可以轻松绕过cURL错误。

导航到Client.php文件(vendor \ guzzlehttp \ guzzle \ src \ Client.php)

将“verify”更改为false

lowercase = {"abcdefghjklmnopqrstuvwxyz": 5}
uppercase = {"ABCDEFGHIJKLMNOPQRSTUWXYZ": 6}
word = input("What is your word?")
score = 0
for x in word:
    countforboth = 0
for y in lowercase:
    if x in y:  # if the word has a lower case letter
        score = score + lowercase[y]
for z in uppercase:
    if x in z:
        score = score + uppercase[z]
countforboth = 0
for y in lowercase:
    for z in uppercase:
        if x in z and y:
            countforboth = countforboth + 1  # if the word has both lower case and upper case lett
            score = score + 7

if countforboth > 1:
    score -= 7 * (countforboth - 1)
    print("Your score is", score)
elif countforboth < 2:
    print("Your score is", score)

答案 2 :(得分:4)

Windows:php.ini enter image description here

并且运作良好

答案 3 :(得分:1)

对于任何拔头发说“我已经下载了一个PRISTINE cacert.pem文件,把它放在正确的位置,正确设置curl.cainfo,并重新启动我的APACHE服务器但是它不能正常工作!”! ?“......如果您使用的是php-fpm,那么service apache2 restartservice apache2 reload更新引用,您将继续收到错误60.如果您故意将curl.cainfo指向一个错误的路径,你不会得到预期的错误77(第一个线索)。

要重新启动php-fpm并更新该引用(不重新启动整个服务器),请使用service php-fpm restartservice php5-fpm restartservice php7-fpm restartservice php7.0-fpm restart等,具体取决于您的php版本。希望这有助于节省时间。

答案 4 :(得分:1)

经过大量研究,我找到了最佳解决方案。您只需要在vendor / guzzlehttp / guzzle / src / Client.php文件中使验证为假。

    $defaults = [
        'allow_redirects' => RedirectMiddleware::$defaultSettings,
        'http_errors'     => true,
        'decode_content'  => true,
        'verify'          => true, // make this false
        'cookies'         => false,
        'idn_conversion'  => true,
    ];

答案 5 :(得分:0)

好吧,它有时可能会令人困惑。当您检查php.ini文件时,您会看到;curl.cainfo = “certificate path\cacert.pem”,您必须注意前面有分号。删除那个和所有引号,简单地把文件路径看起来像这样 curl.cainfo = C:\xampp\php\extras\ssl\cacert.pem你可以看到我的cacert.pem位于路径C:\ xampp \ php \ extras \ ssl \ cacert.pem中,它应该在哪里。保存并重新启动服务器。