Google o auth登录SSL错误

时间:2015-03-20 23:07:23

标签: php google-api google-login

从今天起,我的php oauth登录我的php应用程序突然停止工作。

我收到以下错误:

  

stream_socket_client():对等证书CN = *.storage.googleapis.com' did not match expected CN= www.googleapis.com' stream_socket_client():   无法启用crypto stream_socket_client():无法连接   ssl://www.googleapis.com:443(未知错误)

我正在使用此终结点:https://www.googleapis.com/oauth2/v1/userinfo

3 个答案:

答案 0 :(得分:2)

我使用HTTP Socket与CakePHP有类似的问题。

如果使用框架或HTTP套接字库,可能会发生这种情况。

CakePHP中的修复是禁用ssl_verify_host

根据文件: “如果您希望在验证证书时忽略主机名匹配错误,请设置为false。” http://book.cakephp.org/2.0/en/core-utility-libraries/httpsocket.html

e.g。

$this->HttpSocket = new HttpSocket(array(
            'ssl_verify_host' => false
        ));

这解决了我的问题。我怀疑在其他框架中,会有类似的选项,这应该解决它!

答案 1 :(得分:1)

对我来说,我的SSL版本(我认为是libssl)已经过时,并且没有认出证书的备用通用名称。

我运行了以下命令:

$ apt-get update && apt-get upgrade
$ apt-get dist-upgrade

请注意,升级(尤其是dist-upgrade)可能会导致系统出现问题。

答案 2 :(得分:0)

看起来需要SAN支持的证书发生了变化 - 这是在PHP 5.6 http://phpsecurity.readthedocs.org/en/latest/Transport-Layer-Security-%28HTTPS-SSL-and-TLS%29.html中添加的。

如果您无法升级到该版本,请尝试切换到`Google_IO_Curl传输而不是流,这应该可以正常工作。

$client->setIo(new Google_IO_Curl($client));