我使用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);
3条答案
按热度按时间mznpcxlj1#
设置“curl.cainfo”的值对我没有帮助。相反,我必须在我的 current php.ini的“openssl”部分设置值(在shell中使用命令“which php”找到当前的“php.ini”文件):
取消注解并设置openssl.cafile(路径适用于MacOS):
(按照https://curl.se/docs/caextract.html的建议下载pem文件)
abithluo2#
更新openssl.cnf文件中cacert.pem的位置,使其指向从www.example.com获得的最新版本curl.se,您应该是正确的。
0ve6wy6x3#
described by @tFranz的解决方案非常好用!请注意,你也可以使用你系统的cert文件来代替MAMP文件。我是这样做的:
1.使用以下行查找应包含cert.pem的文件夹:
1.在Finder中打开此文件夹,使用:
1.查找
cert.pem
文件。如果有,可以将其添加到php.ini
文件中: