我打开这样的连接:
fsockopen('ssl:// ... etc
返回时出现以下错误:
警告:fsockopen():SSL操作失败,代码为1. OpenSSL错误消息:错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败
我可能会收到此错误,因为我在 PHP 5.6 中从 PHP 5.3 升级到 PHP 5.6 他们实际检查你的证书。
我用:
检查了我的证书位置openssl_get_cert_locations()
返回以下内容:
Array
(
[default_cert_file] => f:\repo\winlibs_openssl_vc11_x86/cert.pem
[default_cert_file_env] => SSL_CERT_FILE
[default_cert_dir] => f:\repo\winlibs_openssl_vc11_x86/certs
[default_cert_dir_env] => SSL_CERT_DIR
[default_private_dir] => f:\repo\winlibs_openssl_vc11_x86/private
[default_default_cert_area] => f:\repo\winlibs_openssl_vc11_x86
[ini_cafile] =>
[ini_capath] => C:\OpenSSL-Win32\bin\PEM\cert.pem
)
不好的部分是,我甚至没有' f:\
'地点!
我尝试通过在我的php.ini
中添加ini_capath位置来解决这个问题,如下所示:
openssl.capath=C:\OpenSSL-Win32\bin\PEM\cert.pem
您可以在get_cert_location
我很不知道为什么它会进入F:
磁盘(就像我说的,我甚至没有那个),而且我也不知道如何更改位置。
有什么建议吗?