从今天起,我的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(未知错误)
答案 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));