以前已回答過類似問題,但我無法解決此特定情況。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