从具有证书(ssl)的域,LOCALHOST和域http://
的域将数据插入Firebase时,我遇到问题,但是从一个https://
不能运行。
这是在调试中得出的(我正在使用CakePhpv2)
错误:[SocketException] stream_socket_client():对等证书
CN = firebaseio.com' did not match expected CN=
xxxxxx.firebaseio.com'
stream_socket_client():无法启用加密
stream_socket_client():无法连接到ssl://uxxxxxxxx.com:443
(未知错误)
最佳答案
向SSL服务发出请求时,HttpSocket将尝试使用对等验证来验证SSL证书。如果证书未通过对等验证或与正在访问的主机名不匹配,则连接将失败,并会引发异常。默认情况下,HttpSocket将使用mozilla证书颁发机构文件来验证SSL证书。您可以使用以下选项来配置如何处理SSL证书:
ssl_verify_peer设置为false可禁用SSL验证。这不是
推荐的。
ssl_verify_host如果希望忽略,则设置为false
验证证书时,主机名匹配错误。
ssl_allow_self_signed设置为true以启用自签名证书
被接受。这要求启用ssl_verify_peer。
ssl_cafile设置为证书颁发机构文件的绝对路径
您希望用于验证SSL证书的证书。
$ socket = new HttpSocket(array(
'ssl_verify_host'=>否
));
见CakePHP HttpSocket Handling SSL certificates
关于php - CakePhp v2无法使用具有SSL证书的域连接到Firebase,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46714529/