MAMP 本地开发 - cURL 错误 60:SSL 证书:无法获取本地颁发者证书

问题描述 投票:0回答:5

我使用MAMP作为本地开发环境。我想实施 Google 身份验证 - 但不断收到此 SSL 错误。

  1. 正如其他 SO 主题所建议的,我已经在 PHP.ini 文件中添加了这行代码:
curl.cainfo ="C:/MAMP/bin/php/php7.4.1/extras/ssl/cacert.pem"
  1. 并从此处添加了最新的 CA 证书:https://curl.se/docs/caextract.html 在我的 PHP SSL 文件夹中:C:\MAMP in\php\php7.4.1 xtras\ssl

您知道如何在我的本地环境中传递此 SSL 错误吗?

这是代码:

$google_client = new \Google_Client();
    $google_client->setClientId($clientID);
    $google_client->setClientSecret($clientSecret);
    $google_client->setRedirectUri($redirectUri);
    $google_client->addScope("email");
  $google_client->addScope("profile");



    if($this->request->getVar('code')){
        $token = $google_client->fetchAccessTokenWithAuthCode($this->request->getVar('code'));
        if(!isset($token['error'])){
            $google_client->setAccessToken($token['access_token']);
            $this->session->set('access_token', $token['access_token']);

            //get Google profile data
            $google_service = new \Google_Service_Oatuth2($google_client);
            $data = $google_service->userinfo->get();
            print_r($data);

php ssl curl localhost mamp
5个回答
4
投票

设置“curl.cainfo”的值对我没有帮助。 相反,我必须在 current php.ini 的“openssl”部分中设置值(使用命令“which php”在 shell 中查找当前的“php.ini”文件。):

取消注释并设置 openssl.cafile(路径适用于 MacOS):

openssl.cafile="/Applications/MAMP/Library/OpenSSL/certs/cacert.pem"

(按照建议下载 pem 文件 https://curl.se/docs/caextract.html


1
投票

更新 openssl.cnf 文件中 cacert.pem 的位置,使其指向从curl.se 获取的最新版本,你应该是对的。


0
投票

@tFranz描述的解决方案效果很好!请注意,您还可以使用系统的证书文件而不是 MAMP 的证书文件。我就是这样做的:

  1. 使用此行找到应包含 cert.pem 的文件夹:
$ openssl version -d
OPENSSLDIR: "/private/etc/ssl"
  1. 使用 Finder 在 Finder 中打开此文件夹:
$ open /private/etc/ssl
  1. 查找
    cert.pem
    文件。如果您有,可以将其添加到您的
    php.ini
    文件中:
openssl.cafile="/private/etc/ssl/cert.pem"

0
投票

确定您正在将文件位置添加到正确的 php version.ini 文件中。经过五个月的搜索和尝试多种解决方案后,我对我的计算机进行了更深入的研究。事实证明我至少有两个 php 文件实例: 应用程序/MAMP/bin/php/php8.1.13/conf/php.ini 应用程序/MAMP/conf/php8.1.13/php.ini

底线:非常确定您正在编辑正确的文件。


0
投票

我在 MAMP 中所做的,考虑到生产运行正常,并且本地(MAMP)仅用于测试,就是禁用 SSL ,这使我能够继续前进。因此,如果这是您的情况,只需禁用它就会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.