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

nnsrf1az  于 2022-11-13  发布在  其他
关注(0)|答案(3)|浏览(96)

我使用MAMP作为本地开发环境。我想实现一个谷歌认证-但不断得到这个SSL错误。
1.正如其他SO主题所建议的那样,我已经在PHP.ini文件中添加了下面这行代码:

curl.cainfo ="C:/MAMP/bin/php/php7.4.1/extras/ssl/cacert.pem"

1.并从此处添加了最新的CA证书:我的PHP SSL文件夹中的https://curl.se/docs/caextract.html:C:\妈妈咪呀\文件夹

您知道如何在本地环境中传递此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);
mznpcxlj

mznpcxlj1#

设置“curl.cainfo”的值对我没有帮助。相反,我必须在我的 current php.ini的“openssl”部分设置值(在shell中使用命令“which php”找到当前的“php.ini”文件):
取消注解并设置openssl.cafile(路径适用于MacOS):

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

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

abithluo

abithluo2#

更新openssl.cnf文件中cacert.pem的位置,使其指向从www.example.com获得的最新版本curl.se,您应该是正确的。

0ve6wy6x

0ve6wy6x3#

described by @tFranz的解决方案非常好用!请注意,你也可以使用你系统的cert文件来代替MAMP文件。我是这样做的:
1.使用以下行查找应包含cert.pem的文件夹:

$ openssl version -d
OPENSSLDIR: "/private/etc/ssl"

1.在Finder中打开此文件夹,使用:

$ open /private/etc/ssl

1.查找cert.pem文件。如果有,可以将其添加到php.ini文件中:

openssl.cafile="/private/etc/ssl/cert.pem"

相关问题