fockopen:无法启用加密

时间:2016-11-10 17:58:02

标签: php ssl curl

之前已经回答过类似的问题,但我无法解决这个特殊情况。

在我尝试在特定域上使用fsockopen的PHP 5.6+计算机上,我收到以下内容(不是真实域名):

$ php -r "var_dump(fsockopen(\"ssl://www.domain.net\", 9085, \$errnum, \$errstr, 5));"
PHP Warning:  fsockopen(): Failed to enable crypto in Command line code on line 1
PHP Warning:  fsockopen(): unable to connect to ssl://www.domain.net:9085 (Unknown error) in Command line code on line 1
bool(false)

这在PHP 5.5上运行良好,它指出它是由5.6中的变化处理fsockopen验证ssl证书的方式。

可以毫无问题地建立其他连接:

$ php -r "var_dump(fsockopen(\"ssl://www.google.com\", 443, \$errnum, \$errstr, 5));"
resource(4) of type (stream)

根据其他建议,我检查了默认的证书文件

$ php -r "print_r(openssl_get_cert_locations());"
Array
(
    [default_cert_file] => /usr/lib/ssl/cert.pem
    [default_cert_file_env] => SSL_CERT_FILE
    [default_cert_dir] => /usr/lib/ssl/certs
    [default_cert_dir_env] => SSL_CERT_DIR
    [default_private_dir] => /usr/lib/ssl/private
    [default_default_cert_area] => /usr/lib/ssl
    [ini_cafile] =>
    [ini_capath] =>
)

文件/usr/lib/ssl/cert.pem最初缺失,我从curl下载ca包并重命名为匹配。仍然没有运气。

我没有收到任何表明验证证书失败的其他信息。有没有其他方法可以调试此问题?

0 个答案:

没有答案