Linkedin Peer证书无法使用已知的CA证书进行身份验证

时间:2017-06-08 03:57:55

标签: php oauth-2.0 yii2 httpclient linkedin-api

我正试图从Linkedin调用网址https://www.linkedin.com/oauth/v2/accessToken获取访问令牌,如https://developer.linkedin.com/docs/oauth2所述,使用php + curl

但我收到错误Peer certificate cannot be authenticated with known CA certificates 如果我尝试将curl选项CURLOPT_SSL_VERIFYPEER设置为false - 我收到anotger错误403 Forbidden

    $client = new \yii\httpclient\Client([
        'transport' => 'yii\httpclient\CurlTransport',
    ]);
    $response = $client->createRequest()
        ->setMethod('post')
        ->setUrl('https://www.linkedin.com/oauth/v2/accessToken')
        ->addHeaders(['content-type' => 'application/x-www-form-urlencoded'])
        ->setData([
            'grant_type' => 'authorization_code',
            'code' => $_GET['code'],
            'redirect_uri' => 'http://test-network.tk/user/settings/test',
            'client_id' => 'MY_CLIENT_ID',
            'client_secret' => 'MY_CLIENT_SECRET',
        ])
        ->setOptions([
            'sslVerifyPeer' => false,
        ])
        ->send();

请帮帮我

PS:如果我尝试通过浏览器或linux命令行使用GET调用相同的URL - 一切正常,我得到一个访问令牌!

1 个答案:

答案 0 :(得分:0)

问题解决了。我只使用了一家俄罗斯托管服务提供商,但在俄罗斯,LinkedIn已被封锁 - https://blocklist.rkn.gov.ru/#anchor 但我的本地电脑位于乌克兰,所以我的请求是从浏览器和终端成功的。