以前已回答过类似问题,但我无法解决此特定情况。fockopen:无法启用加密
在一个PHP 5.6+机时,我尝试在一个特定的域我收到以下(不是真正的域)使用的fsockopen:
$ 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
最初失踪,我下载CA束从卷曲并重新命名为匹配。仍然没有运气。
我没有收到任何附加信息,指出验证证书失败。有没有其他的方法来调试这个问题?
嗯。如果只发生在一个域上,并且您不会告诉我们域名是什么,这对于帮助您来说将会非常棘手。 – Chris
您可以检查您尝试连接的网站是仅SSLv3还是支持TLS? – Chris
@Chris你没错。该域名是ts1.fcnsrv.net – user3545769